2024年5月8日发(作者:)

十全大补:CxImage图像处理类库

CxImage是一个可以用于MFC 的C++图像处理类库类,它可以打开,保存,显示,

转换各种常见格式的图像文件,比如BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX,

TGA, WMF, WBMP, JBG, J2K 等格式的文件。可以实现BMP<->JPG,PNG <>TIFF

格式等等的互相转换。

CxImage不仅可以实现图像文件的类型转换,还可以实现在内存图像数据的

类型转换,并且使用很方便。除了文件格式的相互转换,它还提供了很多很多图

像后处理的功能,比如图像模糊,锐化等等,功能非常强大和实用。

CxImage中的x,大约代表了丰富的图像格式支持和丰富的图像处理功能,可

以说CxImage是图像处理的十全大补汤。

用CxImage实现的图像处理程序

开发环境:

VC6, C++, Windows, MFC, Visual Studio, VS6, Dev

简介和许可

CxImaage是一个可以简便而快速地打开,保存,显示和转换图像文件的C++

类库。CxImage类库是免费的。对于TIFF,JPEG,PNG和ZLIB,"如果你在你的

产品中使用了这些源代码,虽然致谢不是必须的,但是却会得到众人的欣赏。"

CxImage是开源的并在zlib许可下发布。简单地说,你可以随意地使用这些

代码,只要你不说它是你自己的就行了。

文件格式和链接的库

CxImage支持如下这些库的最新版本:

Cximage 6.00提供了一个新的类CximageRAW和新的库LibDCR,用于读取来

自数码相机的RAW图像。常见的文件扩展名有:RAW, CRW, NEF, CR2, DNG, ORF,

ARW, ERF, 3FR, DCR, X3F, MEF, RAF, MRW, PEF, SR2。

CximageRAW提供了对图像的基本解码功能,它唯一的可选参数可以由

SetCodecOption进行设置,以对插值质量进行可控制。可选的选项有

(DECODE_QUALITY_LIN=0, DECODE_QUALITY_VNG=1, DECODE_QUALITY_PPG=2,

DECODE_QUALITY_AHD=3).

CximagePNG:现在可以读取所有PNG_COLOR_TYPE_类型。但是,每个通道含有

超过8位像素深度的PNG文件,会被转换到8位,这是CxImage的一个主要限制。

CxImageGIF:现在能够更好地支持对动态GIF图像的读取,通过

SetRetreiveAllFrames设置属性,可以同时对图像中的所有帧进行解码。在

CxImage的示例项目中,展示了如何实现这一选项,并展示了如何播放一副GIF

动画。

CxImageBMP: 支持对32位图像的读写(支持Alpha通道)

CxImageICO: 支持对Vista PNG图标的读写;添加对多页图标的支持。

CxImageMNG: 支持对MNG Alpha图层的读取。

CxImageSKA: 新的用于支持SKA图像格式的类,这种图像通常用在视频租赁

软件中。

CxImageJPG: 为JPEG图像格式的二次采样提供了 新的选项。

ENCODE_SUBSAMPLE_422,ENCODE_SUBSAMPLE_444),默认情况下是 高采样率的

4:1:1 。当然,也可以被设置成中等的4:2:2或者低等的4:4:4。

下图展示了不同采样率下,在压缩图像中所产生的不同数量的伪影。在压缩有着

明显轮廓的图像的时候,采用4:4:4的采样率有助于减少轮廓的伪影。