JSPM

targadactyl

2.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q56954F
  • License MIT

TGA (Targa) image loader for Node.js and Bun

Package Exports

  • targadactyl

Readme

Targadactyl

A TGA (Targa) image loader for Node.js and Bun. This library allows you to load and decode TGA image files into canvas rendering contexts.

Installation

npm install targadactyl
# or
bun add targadactyl

Usage

Loading a local TGA file

import { TgaLoader } from 'targadactyl';

const tga = new TgaLoader();

try {
  tga.load(await tga.open('./path/to/image.tga'));
  
  // Access image data
  console.log(tga.header);
  console.log(tga.imageData);
  
  // Get as Data URL
  const dataUrl = tga.getDataURL('png');
  
  // Decode to buffer for serving
  const imageBuffer = tga.decode('png');
} catch (err) {
  console.error('Failed to load TGA:', err);
}

Loading a remote TGA file

import { TgaLoader } from 'targadactyl';

const tga = new TgaLoader();
const url = new URL('https://example.com/image.tga');

try {
  tga.load(await tga.fetch(url));
  const dataUrl = tga.getDataURL('png');
} catch (err) {
  console.error('Failed to fetch TGA:', err);
}

Loading from raw data

import { TgaLoader } from 'targadactyl';
import { readFileSync } from 'node:fs';

const tga = new TgaLoader();
const data = new Uint8ClampedArray(readFileSync('./image.tga'));

tga.load(data);
console.log(tga.header);

API

TgaLoader

Main class for loading and decoding TGA files.

Methods

  • async open(path: string): Promise<Uint8ClampedArray> - Load a TGA file from the filesystem
  • async fetch(uri: URL): Promise<Uint8ClampedArray> - Load a TGA file from a URL (supports file://, http://, and https:// protocols)
  • load(data: Uint8ClampedArray): TgaLoader - Parse TGA data from a Uint8ClampedArray
  • getCanvas(): EmulatedCanvas2D - Get a canvas containing the decoded TGA image
  • getDataURL(type?: 'image/png' | 'image/jpeg'): string - Get the image as a base64-encoded data URL
  • decode(contentType: 'image/png' | 'image/jpeg'): Uint8Array - Decode the TGA to PNG or JPEG format

Properties

  • header: TgaHeader - TGA file header information
  • imageData?: Uint8ClampedArray - Raw image data
  • palette?: Uint8ClampedArray - Color palette (for indexed images)

Supported TGA Formats

  • Uncompressed RGB (8, 16, 24, 32 bit)
  • RLE-compressed RGB
  • Indexed color
  • Grayscale (8, 16 bit)
  • RLE-compressed grayscale

Development

Building

npm run build
# or
bun run build

Testing

npm test
# or with Bun
bun run build && bun test src/tga_test.ts

Credits

Based on tga.js by Vincent Thibault.

License

MIT