GraphicEx is an addendum to Delphi's Graphics.pas in order to enable your application to load many common image formats. This library is primarily designed to load images as background (buttons, forms, toolbars) and textures (DirectX, OpenGL) or for image browsing and editing purposes as long as you don't need to save images. Currently only TTargaGraphic also supports saving an image.
GraphicEx is open source under the Mozilla Public License (MPL). Please read the license agreement before you start using this library.
TIFF images (*.tif; *.tiff), extended base line implementation
byte orders: little endian, big endian
sample sizes: 1, 2, 4, 8, 16 bits per sample
color spaces: indexed, grayscale, RGB(A), CMYK, L*a*b*
compression formats: uncompressed, packed bits, LZW, CCITT T.4 (raw and modified fax group 3, possibly word aligned), ThunderScan, Deflate, new style JPEG
GFI fax images (*.fax), uses TTIFFGraphic to read
sample size: 1 bits per sample
color space: indexed
compression format: CCITT T.4 (raw and modified fax group 3)
SGI images (*.bw, *.rgb, *.rgba, *.sgi)
byte order: big endian
sample sizes: 1, 2, 4, 8, 16 bits per sample
color spaces: indexed, grayscale, RGB(A)
compression formats: uncompressed, RLE
Autodesk images files (*.cel; *.pic) old style only
byte order: little endian
sample size: 8 bits per sample
color spaces: indexed
compression format: uncompressed
Truevision images (*.tga; *.vst; *.icb; *.vda; *.win), write support included
byte order: little endian
sample sizes: 5, 8 bits per sample
color spaces: gray scale, indexed, 15 bits RGB (555), 24 bits RGB(A)(888)
compression formats: uncompressed, RLE
ZSoft Paintbrush images (*.pcx, *.pcc)
byte order: little endian
sample sizes: 1, 2, 4, 8 bits per sample
color spaces: gray scale, indexed, RGB
compression formats: uncompressed, RLE
Word 5.x screen capture files (*.scr)
byte order: little endian
sample sizes: 1, 2, 4, 8 bits per sample
color spaces: indexed, gray scaleRGB
compression formats: uncompressed, RLE
Kodak Photo-CD images (*.pcd)
byte order: little endian
samples size: 8 bits per sample
color space: YCbCr
compression: PCD Huffmann
specials:
sizes: all resolutions, from 192 x 128 up to 6144 x 4096 (64 Base vaporware)
rotated: clockwise and counter-clockwise
Portable pixel/gray map images (*.ppm, *.pgm, *.pbm)
byte order: little endian
sample sizes: 1, 8 bits per sample
color spaces: gray scale, indexed, RGB
compression format: uncompressed
specials:
ASCII and Binary format
Dr. Halo images (*.cut, *.pal)
byte order: little endian
sample size: 8 bits per sample
color spaces: indexed
compression formats: RLE
special:
external palette file (*.pal) is automatically loaded when specified while doing LoadFromStream or when loading the image via LoadFromFile
CompuServe images (*.gif)
byte order: little endian
sample sizes: 1, 4, 8 bits per sample
color spaces: indexed
compression format: LZW
special:
interlaced, non-interlaced
SGI Wavefront images (*.rla, *.rpf)
byte order: big endian
sample size: 8 bits per sample
color space: RGB(A)
compression formats: RLE
Standard Windows bitmap images (*.bmp, *.rle, *.dib), these formats are natively supported by Delphi's VCL but *.rle and *.dib files are not registered with TPicture by default
byte order: little endian
sample sizes: 1, 4, 8 bits per sample
color spaces: indexed, RGB(A)
compression formats: uncompressed, RLE
specials:
OS/2 bitmap format
Photoshop images (*.psd, *.pdd)
byte order: big endian
sample sizes: 1, 8, 16 bits per sample
color spaces: indexed, RGB, CMYK, CIE L*a*b*
compression formats: uncompressed, packed bits
special:
duo tone
Paintshop Pro images (*.psp)
byte order: little endian
sample sizes: 1, 4, 8 bits per sample
color spaces: indexed, gray scale, RGB
compression formats: uncompressed, LZ77
Portable network graphic images (*.png)
byte order: big endian
sample sizes: 1, 2, 4, 8, 16 bits per sample
color spaces: indexed, grayscale (alpha), RGB(A)
compression format: LZ77
specials:
supported chunks: IHDR, IDAT, IEND, PLTE, gAMA, tRNS, bKGD
transparency support partially for RGB, which is stored as 32 bits format