delphi 实现 图片类型转换 jpg---bmp 及修改位图大小
2009-11-20 09:30
761 查看
下面三个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;
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;
相关文章推荐
- java将图片缩放实现类(能将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换)
- BCB实现BMP图片的RGB分解,BMP与JPG格式的相互转换
- 使用JAVA 实现jpg/tif/bmp 等图片之间格式得互相转换
- 缩略图实现,将图片(jpg、bmp、png、gif等等)真实的变成想要的大小
- java 将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换
- opencv实现不同格式图片的转换(jpg<-->bmp)
- JAVA 实现jpg/tif/bmp 等图片格式互相转换,解决RenderedOp资源不能释放
- C++Builder中实现BMP,JPG图片格式的转换
- Delphi中把bmp图片转换成jpg图片
- JAVA 实现jpg/tif/bmp 等图片之间格式得互相转换
- Bmp 图片转换为 jpg 图片(delphi)
- JAVA 实现jpg/tif/bmp 等图片之间格式得互相转换
- Delphi png、bmp、gif等图片格式转换成jpg
- Java实现图片压缩代码,图片大小转换
- java图片大小处理(缩放&切割&类型转换&色彩转换)
- BMP与JPG图片格式的互相转换
- python批处理实现爬取网页静态图片文件重命名图片统一修改大小等功能
- FileUpload实现图片的上传,类型,大小
- java实现缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等
- VC实现打开BMP JPG或GIF图片