5,928
社区成员




{********************************************
描述: 修改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;
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;