defgf60hv
Cholerny Spammer
Joined: 03 Nov 2010
Posts: 886
Read: 0 topics
Location: England
|
Posted: Mon 17:11, 04 Apr 2011 Post subject: ugg boots ireland 基于Delphi流 |
|
|
基于Delphi流技术实现JPEG图像压缩的方法
在屏幕上的视觉效果。它的优点是可以用最少的磁盘空间得到较好的图像品质,缺点是如果追求高品质图像,就不宜使用过高的压缩比例,否则很容易造成图像数据的损伤。2文件流(TFileStream)在面向对象编程中,[link widoczny dla zalogowanych],数据流完全可以取代利用函数实现输入输出的功能,[link widoczny dla zalogowanych],克服了用函数实现输入输出功能的诸多弊端。“流”的概念,可以理解为:流是建立在面向对象基础上的一种抽象处理数据的工具。在流中,可定义一些处理数据的基本操作,诸如读取数据、写入数据等,这样编程人员在对流进行操作时,[link widoczny dla zalogowanych],就不用关心流的另一头数据的真正流向。流不但可以处理文件,而且还可以处理动态内存、网络数据等多种数据形式。显然程序人员若能掌握好对流的操作,并且在程序中充分利用流的方便性,就能够大大提高编写程序时效率。22Delphi中的TFileStream对象是在磁盘文件上存储数据的Stream对象,使用TFileStream类方法可方便地将类中数据保存到文件中,或从文件中读取所需的数据。3实现过程JPEG具有很灵活的格式,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在1O到40:1之间。显然,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。JPEG图像对色彩信息保留得较好,可以支持24bit真彩色,[link widoczny dla zalogowanych],适合应用于互联网上传输。BMP是一种与硬件设备无关的图像文件格式,它采用位映射存储格式,[link widoczny dla zalogowanych],除了图像灰度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大,在图像数据库中必须把BMP格式直接转化为JPEG格式,这种转换具体实现如下:首先获得原始的JPEG型图像流:OldStream:=TFileStream.CREATE(FileName,fmOpenRead)JPGimage.LoadFromStream(OldStream)EndStream:=TFileStream.Create(OutFileName,fmOpenWriteorfmCreate)绘制自定义大小的填充区域,并写入原始JPEG型图像流,图像延伸改变大小以适应矩形区域。Bitmap:=TBitmap.CreateBitmap.Canvas.Filmect(Rect(0,0,Width,Height))Bitmap.Canvas.StretchDraw(Rect(0,0,width,height),JPGimage)复制Bitmap位图数据,保存经压缩和缩放后的图像流。JPGimage.Assign(Bitmap)JPGimage.SaveToStream(endStream)Bitmap.FreeoldStream.FreeendStream.Free4结束语本设计利用Delphi流技术实现BMP图像转换为JPEG图像,实现了对整幅图像有损压缩,针对性强,并且软件的存储空间占用少,方便携带,用户还可以根据的需要按比例进行压缩,具有很强的实用性等优点。文中所列实现代码,用户可以根据自己的需要进行修改或改进,实现压缩后的图像文件既能符合用户的要求,又能大大减少图像文件占用空间。注:本文为甘肃省省属科研院所科技创新队资助(0707TTCA006)基金项目。
More articles related to topics:
tory burch outlet 甘肃省物流系统发展现状与前景_399
ecco shoes 计算机网络辅助教学系统的研究_3749
moncler doudoune 浅谈现代企业激励机制的建立_13099
The post has been approved 0 times
|
|