Lumena Paint

Also Known As: .PIX, .BPX


Type Bitmap
Colors 24-bit maximum
Compression RLE, uncompressed
Maximum Image Size Unlimited
Maximum Image Size Unlimited
Numerical Format Little-endian
Originator Time Arts Inc.
Platform MS-DOS
Supporting Applications Lumena, others
See Also TGA

Usage
Used mainly in conjunction with Time Arts programs, particularly Lumena Paint.

Comments
This format is used frequently by production houses for data interchange.

Vendor specifications are available for this format.


Lumena Paint is a 24-bit paint program for the PC that uses the TGA, TIFF, and EPS file formats to import and export images. Lumena also uses its own native bitmap formats, which often have the extension .PIX (Time Arts Picture Format) and .BPX (Time Arts Big Picture Format), and which are also referred to as the Lumena 16 and Lumena 32 formats, respectively.

Contents:
File Organization
File Details
For Further Information

Lumena sold into what was known as the Targa market, centered around compatibility with truecolor display adapters for the PC sold by Truevision and its competitors. This was a small niche market in the PC world, and at its peak consisted of about 50,000 sites. Increased interest in truecolor on PCs led Hercules to introduce a relatively inexpensive display adapter (Hercules Graphics Station) supporting 24-bit color, and as part of its marketing effort, enter into an OEM arrangement with Time Arts to bundle Lumena with the boards.

File Organization

Besides the depth of the pixel data, the main difference between the Lumena 16 and the Lumena 32 formats is in the header. Both formats have the same file header. In the Lumena 16 format, four of the header fields associated with pixel values are two bytes in size, while the same fields are four bytes in size for the Lumena 32 format. Lumena 16 files may also contain a postage stamp image, while Lumena 32 files may not.

Following the common file header may be a descriptor header; this header is different for the two formats. Lumena 16 files have a PIX header, whereas Lumena 32 files have a BPX header.

File Details

Each pixel value in the Lumena 16 image is two bytes in size (five bits each of red, green, and blue, and one overlay bit), and each pixel value in a Lumena 32 file is 32 bits (eight bits each of red, green, blue, and alpha channel). Both the alpha channel and the overlay bits occupy the most significant bits of each pixel value. Image data always follows the postage stamp data, or a feature called the descriptor header, if no postage stamp image is present in the file.

The largest size of a typical Lumena 16 image is 512x482 pixels. Larger images are stored using the Lumena 32 format and at a size that is an exact multiple of the display resolution (for example 1024x768x32 bits).

Both Lumena file types start with the same file header:

typedef struct _LumenaHeader
{
  BYTE  DescriptorSize;     /* Size of Image Descriptor   */
  BYTE  IsImageStamp;       /* Image Stamp Present   */
  BYTE  FileType;           /* File Encoding Type   */
  WORD  StampWidth;         /* Stamp Width in Pixels   */
  WORD  StampHeight;        /* Stamp Length in Pixels   */
  BYTE  StampBPP;           /* Bits per Pixel in Stamp   */
  WORD  XOrigin;            /* X Origin of Image   */
  WORD  YOrigin;            /* Y Origin of Image   */
  WORD  ImageWidth;         /* Image Width in Pixels   */
  WORD  ImageHeight;        /* Image Height in Pixels   */
  BYTE  BitsPerPixel;       /* Number of Bits Per Pixel   */
  BYTE  AlphaMaskBPP;       /* Alpha Bits Per Pixel   */
} LUMENAHEAD;

DescriptorSize is the size of the descriptor header in bytes. The descriptor header is a second header that may follow the file header and that differs in size between the two Lumena formats.

IsImageStamp field is set to 1h if there is a postage-stamp image included in the file, otherwise it is set to 0h. The postage-stamp image always follows the descriptor header.

A postage-stamp image is a smaller version of the primary image stored in the Lumena file. Postage stamps are used to preview the contents of an image file without taking the time to display the original image. Postage-stamp images may be very quickly displayed because of their small size. Typically, postage stamps are one-eight the height and width of the original image, with 64x64 pixels being a typical maximum size. A typical 512x482-pixel Lumena image would then contain a 64x60-pixel postage-stamp image. Although postage stamps are useful, not every Lumena image file will contain one. (See the article on the TGA format for information on ways to create postage-stamp images.)

FileType indicates the type of data compression algorithm used on the image data. A value of 02h indicates a standard file with uncompressed image data; the image data is arranged just as it is in the TGA Type 2 data format. A value of 0Ah indicates run-length encoded image data the same as found in TGA Type 10 image data. A value of 8Eh indicates an older style of data compression that is no longer used by applications supporting the Lumena image file formats.

StampWidth, StampHeight, and StampBPP all store information about the postage stamp image. Only Lumena 16 image files may contain postage-stamp images; Lumena 32 image files never contain these images. The StampWidth and StampHeight are in pixels, and the StampBPP field contains the number of bits per pixel in the postage-stamp data, including alpha channel bits, if any.

XOrigin and YOrigin are the starting coordinates of the image on the display with 0,0 being the lower-left corner of the screen.

ImageHeight and ImageWidth represent the size of the image in pixels.

BitsPerPixel contains the number of bits in each pixel of image data. This value is 16 for Lumena 16 images and 32 for Lumena 32 images and includes any alpha bits present in the pixel data.

AlphaMaskBPP contains the number of bits in each pixel used for alpha channel data. This value is 0 for Lumena 16 images and 8 for Lumena 32 images.

Lumena 16 files also have a PIX descriptor header in the following format:

typedef struct _Lumena16Descriptor
{
WORD  Identifier;     /* Descriptor Identifier   */
WORD  RedMask;        /* Mask for Red Bits   */
WORD  GreenMask;      /* Mask for Green Bits   */
WORD  BlueMask;       /* Mask for Blue Bits   */
WORD  XAspectRatio;   /* X Axis Image Aspect Ratio   */
WORD  YAspectRatio;   /* Y Axis Image Aspect Ratio   */
WORD  Background;     /* Background Color (Black = 0)  */
BYTE  Comment[40];    /* Text Comment   */
} LUM16DESCRP;

Lumena 32 files have a BPX descriptor header instead of a PIX header. The BPX descriptor header is identical to the PIX descriptor header except for four fields that are four bytes in size rather than two:

typedef struct _Lumena32Descriptor
{
WORD   Identifier;    /* Descriptor Identifier   */
DWORD  RedMask;       /* Mask for Red Bits   */
DWORD  GreenMask;     /* Mask for Green Bits   */
DWORD  BlueMask;      /* Mask for Blue Bits   */
WORD   XAspectRatio;  /* X Axis Image Aspect Ratio   */
WORD   YAspectRatio;  /* Y Axis Image Aspect Ratio   */
DWORD  Background;    /* Background Color (Black = 0)     */
BYTE   Comment[40];   /* Text Comment   */
} LUM32DESCRP;

Identifier always contains the value 8Eh and is used to identify the start of the descriptor header.

RedMask, GreenMask, and BlueMask contain the values used to mask and shift out the separate red, green, and blue values from the pixel data. The code to do so is shown below:

RedValue   = (PixelValue & RedMaskValue) >> (BitsPerPixel * 2);
GreenValue = (PixelValue & GreenMaskValue) >> (BitsPerPixel * 1);
BlueValue  = (PixelValue & BlueMaskValue) >> (BitsPerPixel * 0);

XAspectRatio and YAspectRatio contain the horizontal and vertical aspect ratios of the image.

Background indicates the background color of the display not covered by the image. The default is 0 for black, and this value may be any valid screen color value.

Comment is a NULL-terminated string of ASCII characters. Images created using the Lumena Paint program typically contain the comment "Time Arts Lumena file."

For Further Information

For further information about the Lumena Paint format and application, see the specification included on the CD-ROM. You may also contact:

Time Arts Inc.
Attn: Scott Gross
Vice-President, Engineering
1425 Corporate Center Parkway
Santa Rosa, CA 95407
Voice: 800-959-0509
FAX: 707-576-7731
BBS: 707-576-7352

You might also be able to obtain information about Lumena from Hercules Computer, which bundles Lumena Paint with its PCs and graphics boards. Contact:

Hercules Computer Inc.
Attn: Lumena/Hercules Art Department
921 Parker Street
Berkeley, CA 94710
Voice: 510-540-6000
Voice: 800-532-0600
FAX: 510-540-6621
BBS: 510-540-0621



Copyright © 1996, 1994 O'Reilly & Associates, Inc. All Rights Reserved.