Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:10:35
delphi图像格式处理

delphi图像格式处理

图像格式处理

多媒体系统中最重要的信息就是图像,在Delphi 中提供了一个名为TImage 的组件,使用该组件,可以很方便地调入一幅图像。TImage 组件支持.jpeg、.bmp、.ico、.emf 和.wmf 等格式的文件。其中.jpeg 和.bmp 是最常用的两种文件,在某些场合下,需要实现两者之间的互相转换,Delphi中提供一个TJPEGImage 对象,可以实现相互转换操作。

JPEG(Joint Photographic Experts Group)文件格式最初由c-cube microsystems 推出,是为了提供一种存储深度位像素的有效方法,例如对照片扫描,颜色很多而且差别细微。JPEG 和这里讨论的其他格式的最大区别是JPEG 使用一种有损压缩算法。无损压缩算法能在解压后准确再现压缩前的图像,而有损压缩则牺牲了一部分的图像数据来达到较高的压缩率,但是这种损失很小,以至于人们很难察觉。

JPEG 图像压缩是一个复杂的过程,经常需要专门的硬件支持。首先图像以像素为单位分成8×8的块。然后,每个块分3 个步骤被压缩。第1 步使用dct(discrete cosine transform)离散余弦变换把8×8 的像素矩阵变成8×8 的频率(也就是颜色改变的速度)矩阵。第2 步对频率矩阵中的值用量化矩阵进行量化,滤掉那些总体上对图像不重要的部分。第3 步,对量化后的频率矩阵进行无损压缩。

因为被量化后的频率矩阵缺少了许多高频信息,通常能被压缩到一半甚至更少。无损压缩一般不能压缩真正的照片图像,所以50%的压缩率已经相当不错了。但另一方面,无损压缩能把一些图像文件尺寸减少90%,这样的图像文件就不适合用JPEG 来压缩。JPEG 的有损部分产生在第2 步,量化矩阵的值越高,从图像中丢掉的信息就越多,从而压缩率就越高,但同时图像的质量就越差。在JPEG压缩时可以选择一个量化因子,这个因子的值决定了量化矩阵中的数值。理想的量化因子要在压缩率和图像质量间达到平衡,所以对不同的图像要选择不同的量化因子,通常要经过若干次尝试后方可确定。

Delphi 中提供了一个叫作TJPEGImage 的类,它使得程序员可以绕过复杂的文件操作。

TJPEGImage 的属性:

·CompressionQuality TJPEGQualityRange 压缩质量。值越大图像质量越好,文件占用空间也越大

·Empty Boolean 说明JPEG 图像对象是否包含一幅图像。如果Empty 为真,表明JPEG 图像对象已经装入一幅图像,反之则无

·Grayscale Boolean 色彩标记。值为真黑白色,反之为彩色

·Height Integer 图像高度

·Palette HPALETTE 调色板

·Performance TJPEGPerformance 性能,控制内部位图显示速度

·PixelFormat TJPEGPixelForm 显示格式,决定图像是24bit 还是8bit 格式

·ProgressiveDisplay Boolean 控制图形显示时如何解压

·ProgressiveEncoding Boolean 输出文件时如何压缩

·Scale TJPEGScale 图像显示大小(jsFullSize、jsHalf、jsQuarter、jsEighth)

·Width Integer 图像宽度

·Modified Boolean 图形修改标识

·PaletteModified Boolean 调色板修改标识

·Transparent Boolean 透明

·Smoothing Boolean 压图形显示的平滑度


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759