免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
delphi實(shí)現(xiàn)bmp與jpg圖像相互轉(zhuǎn)換及位圖大小調(diào)整

delphi實(shí)現(xiàn)bmp與jpg圖像相互轉(zhuǎn)換及位圖大小調(diào)整 
 
摘  要:本文介紹了如何通過delphi編碼實(shí)現(xiàn)bmp格式圖像與jpeg格式圖像的相互轉(zhuǎn)換以
及bmp格式圖像的大小的調(diào)整。在圖片處理操作中使用了幾個(gè)api函數(shù),其算法同樣適用于其他編程語(yǔ)言。  
關(guān)鍵詞:圖形轉(zhuǎn)換、圖片調(diào)整  
在很多MIS系統(tǒng)或者其他管理信息系統(tǒng)中,有需要用戶上傳照片到數(shù)據(jù)庫(kù)等對(duì)圖片的操作,根據(jù)系統(tǒng)需求不同,可能需要對(duì)這些照片進(jìn)行格式轉(zhuǎn)換或者大小的調(diào)整。這里有三個(gè)在MIS系統(tǒng)或者其他管理信息系統(tǒng)中比較常用的圖片處理過程,與大家分享。 
 
1、 Bmp格式轉(zhuǎn)換位jpg(jpeg)格式。 
進(jìn)程:Image_BitmapToJPeg實(shí)現(xiàn)bmp格式圖片到Jpg(jpeg)格式圖片的轉(zhuǎn)換,如下:  
{參數(shù)介紹: 
  FileName:要轉(zhuǎn)換的位圖的路徑及名稱 
  SaveFileName:轉(zhuǎn)換后生成 jpg圖形的路徑及名稱}   
Procedure Image_BitmapToJPeg(Const FileName: String;SaveFileName:String=''); Var 
  Bitmap: TBitmap;                 //定義變量 
  JPeg: TJPegImage;                //所屬unit是:Jpeg,需要在項(xiàng)目的uses 中 加入Jpeg Begin   Try 
    Bitmap := TBitmap.Create;      //創(chuàng)建位圖資源 
    Bitmap.LoadFromFile(FileName); //根據(jù)傳入的參數(shù)載入位圖資源     JPeg := TJPegImage.Create;     //創(chuàng)建jpeg資源 
    JPeg.Assign(Bitmap);          //把bitmap中的圖像資源拷貝到j(luò)peg對(duì)象中 
    IF Trim(SaveFileName)='' Then  //如果傳入的目的地址為空,按原名保存(擴(kuò)展名改變)       JPeg.SaveToFile(ChangeFileExt(FileName, '.jpg')) 
    Else                        //按參數(shù)指定的名稱保存jpg圖片       JPeg.SaveToFile(SaveFileName); 
  Finally 
    FreeAndNil(Bitmap);           //釋放資源     FreeAndNil(JPeg);             //釋放資源   End; End; 
從上面的代碼及其注釋中我們可以看出程序思路,首先分別定義并創(chuàng)建bmp對(duì)象Bitmap和jpeg對(duì)象JPeg,然后在Bitmap對(duì)象載入位圖后,把Bitmap中的圖像
資源復(fù)制到Jpeg中,最后把Jpeg保存到磁盤并釋放創(chuàng)建的對(duì)象。 
 
2、 Jpg(jpeg)格式轉(zhuǎn)換為bmp格式。 
進(jìn)程:Image_JPegToBitmap實(shí)現(xiàn)Jpg(jpeg)格式圖片到bmp格式圖片的轉(zhuǎn)換,如下: 
 


名人堂:眾名人帶你感受他們的驅(qū)動(dòng)人生馬云任志強(qiáng)李嘉誠(chéng)柳傳志史玉柱
 


{參數(shù)介紹: 
  FileName:要轉(zhuǎn)換的 jpg圖形的路徑及名稱   SaveFileName:轉(zhuǎn)換后生成位圖的路徑及名稱} 
Procedure Image_JPegToBitmap(Const FileName: String;SaveFileName:String=''); Var 
Bitmap: TBitmap;                  //定義變量 
JPeg: TJPegImage;                 //所屬unit是:Jpeg,需要在項(xiàng)目的uses 中加入 Jpeg Begin 
Try 
   JPeg := TJPegImage.Create;     //創(chuàng)建jpeg資源 
   JPeg.LoadFromFile(FileName);   //根據(jù)傳入的參數(shù)載入jpeg資源    Bitmap := TBitmap.Create;      //創(chuàng)建位圖資源 
   Bitmap.Assign(JPeg);           //把jpeg中的圖像資源拷貝到bitmap對(duì)象中 
   IF Trim(SaveFileName)='' Then  //如果傳入的目的地址為空,按原名保存(擴(kuò)展名改變)       Bitmap.SaveToFile(ChangeFileExt(FileName, '.bmp')) 
    Else                           //按參數(shù)指定的名稱保存bmp圖片       Bitmap.SaveToFile(SaveFileName);  Finally 
   FreeAndNil(Bitmap);            //釋放資源    FreeAndNil(JPeg);              //釋放資源  End; End; 
根據(jù)上面的代碼及其注釋我們可以看出,其程序思路與Image_BitmapToJPeg過
程的思路是一致的。 
 
3、 Bmp位圖大小調(diào)整。 
進(jìn)程:Image_FitBitmap實(shí)現(xiàn)對(duì)位圖大小的調(diào)整。如下: 
 
{參數(shù)介紹: 
  Source:要轉(zhuǎn)換的 位圖的路徑及名稱   Dest:  轉(zhuǎn)換后生成位圖的路徑及名稱   x, y:  轉(zhuǎn)換后位圖圖片的寬和高} 
procedure Image_FitBitmap(const Source,Dest:string;const x,y:integer); var 
 abmp,bbmp:tbitmap;            //定義變量  abmp為源對(duì)象變量  bbmp為目的對(duì)象變量 begin 
abmp:=tbitmap.Create;                     //創(chuàng)建位圖資源 bbmp:=tbitmap.Create;                     //創(chuàng)建位圖資源 try 
  abmp.LoadFromFile(Source);             //載入源位圖資源 bbmp.Width:=x;                         //設(shè)置目的位圖的寬 
bbmp.Height:=y;                        //設(shè)置目的位圖的高 
bbmp.PixelFormat:=pfDevice;            //設(shè)置位圖格式為當(dāng)前設(shè)備默認(rèn)格式 SetStretchBltMode(bbmp.Canvas.Handle,COLORONCOLOR);//設(shè)置指位圖拉伸模式 

 

 


    
    
stretchblt(bbmp.Canvas.Handle,0,0,bbmp.Width,bbmp.Height,abmp.Canvas.Handle,0,0,abmp.Width,abmp.Height,srccopy);   //從源矩形中復(fù)制一個(gè)位圖到目標(biāo)矩形并適當(dāng)壓縮bbmp.SaveToFile(Dest); //保存轉(zhuǎn)換后的目的圖片 finally 
abmp.Free;  //釋放資源 bbmp.Free;  //釋放資源 end; end; 
結(jié)合上面的代碼及其注釋我們知道其思路,首先創(chuàng)建兩個(gè)位圖資源分別對(duì)應(yīng)源位圖(abmp)和目的位圖(bbmp),源位圖載入后,設(shè)置目的位圖的寬和高,然后通過api函數(shù)SetStretchBltMode來設(shè)置位圖的拉伸模式,通過api函數(shù)stretchblt設(shè)置目的位圖圖像資源,最后保存目的位圖到磁盤并釋放創(chuàng)建的對(duì)象。 
 
上面三個(gè)過程的源代碼加入delphi程序中即可使用,其中TJPegImage 類型屬于Jpeg單元,也就是你使用該類的時(shí)候,需要在所在單元的uses中加入Jpeg。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在C#中將.bmp轉(zhuǎn)為.jpg格式的方法
C#手動(dòng)自動(dòng)保存圖片
Gdi+
csdn技術(shù)中心 delphi中資源文件使用詳解
數(shù)據(jù)庫(kù)中圖片操作
偵探·懸疑電影136部
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服