]>
Commit | Line | Data |
---|---|---|
8414a40c VZ |
1 | Frank, |
2 | ||
3 | I attached a file that uses RGBA interface (tif_getimage.c) to read a tiff | |
4 | file and convert to a DIB. It's advantage is that it is easy to read *any* | |
5 | tiff file suported by libtiff and easily convert it to a DIB. The disadvantage | |
6 | is that bilevel (B&W) bitmaps (and all other non-rgba images) are also | |
7 | converted to RGBA, thus taking up 32x as much memory as needed (4 bytes per | |
8 | pixel, rather than 1 bit). I read tiff files, but don't need to | |
9 | write them. And my files are typically small, so the overhead is mostly | |
10 | inconsequential. But for bilevel images, I overrode the get() and put() | |
11 | routines of the RGBA interface to just copy the data from the input raster | |
12 | to the output raster, rather than expanding out to full 32 bit format. It | |
13 | would be nice if there were a simple way to handle all palletized images, | |
14 | but that would take more custom routines, and it's not that important to me. | |
15 | ||
16 | Usage: | |
17 | ||
18 | m_pDIB = (PBITMAPINFOHEADER)::ReadTIFF(pathName); | |
19 | if (m_pDIB != 0) { | |
20 | m_format = IMAGETYPE_TIF; | |
21 | } | |
22 | ||
23 | This is intended as Win32, but the modifications for new get() and put() | |
24 | routines may be independent of platform. | |
25 | ||
26 | Thanks for your work supporting the forum and the library! | |
27 | ||
28 | Regards, | |
29 | ||
30 | Mark James | |
31 | mark@james.net |