Windows XP的Tiff文件格式支持

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

 

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

[cpp]  view plain copy
  1. CxImage ximg;  
  2. ximg.CreateFromHBITMAP(capBmp.operator HBITMAP() );  
  3. ximg.SetCodecOption(COMPRESSION_LZW, CXIMAGE_FORMAT_TIF);  
  4. 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 <dkelly@etsinc.com) */
#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 <dev@oceana.com> */
#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值