在工作過程中我經常使用到兩種圖象——網頁上的JPEG圖象和雜志題目的BMP圖象一般來說我把原始的BMP圖象保存在CD中然後用Delphi應用程序把它們轉化成JPEG文件這篇文章我將介紹如何利用Delphi應用程序把BMP圖象轉化成JPEG圖象及反之轉化如果要查看圖象格式信息請點擊這裡
一TJPEGImage
在Delphi 中Delphi控件庫中的Timage控件能顯示不同格式的文件如BMP ICO WMF/EMF and JPEG文件然後能夠顯示文件格式並不等於能夠進行文件格式之間的轉化Timage控件中的LoadFromFile和SaveToFile事件能保存一個BMP文件但如果你保存JPG文件你也只能采用BMP格式存放
幸運的是Delphi 中的TJPEGImage控件能很好地解決了上面的問題這一控件沒有直接存放在控件庫中它均以JPEB形式聲明和說明如果你想找到這一控件的例程源代碼請點擊Dehphi目錄下的Info\Extras\JPEG路徑(不要告訴我你從沒打開這一目錄這裡有很多好東東)
TJPEGImage控件從Tgraphic控件引申出來所以它與Tbitmap控件相兼容如Listing A如示你可以利用TJPEGImage控件寫出一個把BMP轉化成JPEG的例子
注意到Tbitmap使用LoadFromFile事件傳入文件但是你必需只能利用TJPEGImage的SaveToStream事件保存JPEG圖象到文件後者沒有如SaveToFile的事件這一過程包括了文件壓縮質量的百分比缺省值是%
例如我把字節的Handshakbmp文件從Common Files\Borland Shared\Images\Splash\Color目錄下轉化為種JPEG文件這一過程采用%%%%%%%%%%%%的壓縮質量百分比如Table A所示在%下圖象不再有很好的質量%壓縮質量比結果是文件變大事實上當我采用%以上的壓縮質量百分比時圖象都保持很好的效果
Compression quality percentage
Resulting JPEG file size
%
%
%
%
%
%
%
%
%
%
%
%
二從JPEG轉化為BMP
把JPEG圖象轉化為BMP圖象能夠節省很大的存儲空間但是這一過程要丟失一些圖象性質在很多情況下人們都是存儲BMP文件而不是JPEG文件
幸運的是從JPEG轉化到BMP是非常的容易你無需使用壓縮質量的方式但是你應該記住BMP文件是不能壓縮的所認BMP的壓縮設置對最後的文件大小沒有任何的影響
Delphi JPGBMP工程的源代碼位於Listing B這一程序演示了以上所說的內容
三非常容易地轉化
這裡的代碼片段演示了如何轉化BMP到JPEG及如何返之轉化即使你還關注轉化的質量和文件大小Delphi的TJPEGImage控件也能讓你很容易地完成這一操作
From:http://tw.wingwit.com/Article/program/Delphi/201311/25058.html