Blame contrib/win_dib/README.Tiffile

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