delphi 实现 图片类型转换 jpg---bmp 及修改位图大小

下面三个delphi函数实现了bmp类型图片和jpg(jpeg)类型图片的转换和改变位图图片的大小。

jpg转换为bmp:

{********************************************
作者/日期

描述: 实现jpg(jpeg)图片向bmp图片的转换
参数介绍
FileName:要转换的jpg(jpeg)图片的名称(包括路径)
SaveFileName:转换后的bmp图片的存储位置。
           默认为空,相当于修改源文件类型
********************************************}
Procedure pic_jpgtobmp(Const FileName: String;SaveFileName:String='');
Var
Bitmap: TBitmap;
JPeg: TJPegImage;
Begin
Bitmap := Nil;
JPeg := Nil;
Try
    JPeg := TJPegImage.Create;
    JPeg.LoadFromFile(FileName);
    Bitmap := TBitmap.Create;
    Bitmap.Assign(JPeg);
    IF Trim(SaveFileName)='' Then
      Bitmap.SaveToFile(ChangeFileExt(FileName, '.bmp'))
    Else
      Bitmap.SaveToFile(SaveFileName);
Finally
    FreeAndNil(Bitmap);
    FreeAndNil(JPeg);
End;
End;

 

{********************************************
作者/日期 dqc 2007.12.30
描述: 实现bmp图片向jpg(jpeg)图片的转换
参数介绍
FileName:要转换的bmp图片的名称(包括路径)
SaveFileName:转换后的jpg(jpeg)图片的存储位置。
           默认为空,相当于修改源文件类型
********************************************}
Procedure pic_bmptojpg(Const FileName: String;SaveFileName:String='');
Var
Bitmap: TBitmap;
JPeg: TJPegImage;
Begin
Bitmap := Nil;
JPeg := Nil;
Try
    Bitmap := TBitmap.Create;
    Bitmap.LoadFromFile(FileName);
    JPeg := TJPegImage.Create;
    JPeg.Assign(Bitmap);
    IF Trim(SaveFileName)='' Then
      JPeg.SaveToFile(ChangeFileExt(FileName, '.jpg'))
    Else
      JPeg.SaveToFile(SaveFileName);
Finally
    FreeAndNil(Bitmap);
    FreeAndNil(JPeg);
End;
End;

 

 


{********************************************
作者/日期

描述: 修改bmp文件大小
参数介绍
Source:要修改的bmp文件位置(包括路径)
Dest: 修改后保存的位置。
X,Y:   修改后的大小
********************************************}
procedure TdqcFunction.Image_FitBitmap(const Source,Dest:string;const x,y:integer);
var
abmp,bbmp:tbitmap;
scalex,scaley:real;
begin
abmp:=tbitmap.Create;
bbmp:=tbitmap.Create;
try
    abmp.LoadFromFile(Source);
    scaley:=abmp.Height/y;
    scalex:=abmp.Width/x;
    bbmp.Width:=round(abmp.Width/scalex);
    bbmp.Height:=round(abmp.Height/scaley);
    bbmp.PixelFormat:=pfDevice;
    SetStretchBltMode(bbmp.Canvas.Handle,COLORONCOLOR);
    stretchblt(bbmp.Canvas.Handle,0,0,bbmp.Width,bbmp.Height,abmp.Canvas.Handle,0,0,abmp.Width,abmp.Height,srccopy);
    bbmp.SaveToFile(Dest);
finally
   abmp.Free;
   bbmp.Free;
end;
end;

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值