32 lines
1.2 KiB
Plaintext
32 lines
1.2 KiB
Plaintext
|
Frank,
|
||
|
|
||
|
I attached a file that uses RGBA interface (tif_getimage.c) to read a tiff
|
||
|
file and convert to a DIB. It's advantage is that it is easy to read *any*
|
||
|
tiff file suported by libtiff and easily convert it to a DIB. The disadvantage
|
||
|
is that bilevel (B&W) bitmaps (and all other non-rgba images) are also
|
||
|
converted to RGBA, thus taking up 32x as much memory as needed (4 bytes per
|
||
|
pixel, rather than 1 bit). I read tiff files, but don't need to
|
||
|
write them. And my files are typically small, so the overhead is mostly
|
||
|
inconsequential. But for bilevel images, I overrode the get() and put()
|
||
|
routines of the RGBA interface to just copy the data from the input raster
|
||
|
to the output raster, rather than expanding out to full 32 bit format. It
|
||
|
would be nice if there were a simple way to handle all palletized images,
|
||
|
but that would take more custom routines, and it's not that important to me.
|
||
|
|
||
|
Usage:
|
||
|
|
||
|
m_pDIB = (PBITMAPINFOHEADER)::ReadTIFF(pathName);
|
||
|
if (m_pDIB != 0) {
|
||
|
m_format = IMAGETYPE_TIF;
|
||
|
}
|
||
|
|
||
|
This is intended as Win32, but the modifications for new get() and put()
|
||
|
routines may be independent of platform.
|
||
|
|
||
|
Thanks for your work supporting the forum and the library!
|
||
|
|
||
|
Regards,
|
||
|
|
||
|
Mark James
|
||
|
mark@james.net
|