Windows XP的Tiff文件格式支持

 在做图形转换时,发现有一些tiff文件,用Window XP默认的查看器打不开。研究了一下,原来是微软查看器的问题。他对TIFF的压缩算法支持一部分。所以,如果希望生成的TIFF文件,可以用默认查看器打开。需要制定压缩算法。参考:MSKB Q329270, "You Cannot View TIFF Images Using Windows Picture and Fax Viewer"

 

我实际使用的是CxImage类,在save之前需要处理一下codec参数。参考代码:

CxImage ximg; ximg.CreateFromHBITMAP(capBmp.operator HBITMAP() ); ximg.SetCodecOption(COMPRESSION_LZW, CXIMAGE_FORMAT_TIF); ximg.Save(name, CXIMAGE_FORMAT_TIF);

其中,SetCodecOption的可选参数定义在tiff.h中

#define     COMPRESSION_NONE  1 /* dump mode */
#define     COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */
#define     COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */
#define     COMPRESSION_CCITT_T4        3       /* CCITT T.4 (TIFF 6 name) */
#define     COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */
#define     COMPRESSION_CCITT_T6        4       /* CCITT T.6 (TIFF 6 name) */
#define     COMPRESSION_LZW  5       /* Lempel-Ziv  & Welch */
#define     COMPRESSION_OJPEG  6 /* !6.0 JPEG */
#define     COMPRESSION_JPEG  7 /* %JPEG DCT compression */
#define     COMPRESSION_NEXT  32766 /* NeXT 2-bit RLE */
#define     COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */
#define     COMPRESSION_PACKBITS 32773 /* Macintosh RLE */
#define     COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */
/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT <[email protected]) */
#define     COMPRESSION_IT8CTPAD 32895   /* IT8 CT w/padding */
#define     COMPRESSION_IT8LW  32896   /* IT8 Linework RLE */
#define     COMPRESSION_IT8MP  32897   /* IT8 Monochrome picture */
#define     COMPRESSION_IT8BL  32898   /* IT8 Binary line art */
/* compression codes 32908-32911 are reserved for Pixar */
#define     COMPRESSION_PIXARFILM 32908   /* Pixar companded 10bit LZW */
#define     COMPRESSION_PIXARLOG 32909   /* Pixar companded 11bit ZIP */
#define     COMPRESSION_DEFLATE  32946 /* Deflate compression */
#define     COMPRESSION_ADOBE_DEFLATE   8       /* Deflate compression, as recognized by Adobe */
/* compression code 32947 is reserved for Oceana Matrix <[email protected]> */
#define     COMPRESSION_DCS             32947   /* Kodak DCS encoding */
#define     COMPRESSION_JBIG  34661 /* ISO JBIG */
#define     COMPRESSION_SGILOG  34676 /* SGI Log Luminance RLE */
#define     COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */

 

COMPRESSION_LZW  是XP肯定可以支持的。

CxImage的资料参考:

 

http://www.codeproject.com/KB/graphics/cximage.aspx

http://www.xdp.it/cximage.htm

你可能感兴趣的:(windows,XP,encoding,alignment,compression,tiff)