改变图像大小(50分)

  • 主题发起人 主题发起人 Laird
  • 开始时间 开始时间
L

Laird

Unregistered / Unconfirmed
GUEST, unregistred user!
如何改变一幅图像的大小
如:
800*600的一幅图像(C:/tempImage.bmp)
另存成400*400的图像,(不切割原始图像,图像变形也没关系,
如原来是圆的,别存后成了椭圆)
 
用strechdraw另画一个。
 
如果是纯粹为了转换图象,去找一个图象处理软件就可以了,如
PhotoShop。
 
{
功能:改变图像的大小。
参数:SrcDC -〉源 DC
SrcWidth, SrcHeight -〉源 DC 的宽、高
DestWidth, DestHeight -〉变换后的宽、高
例如: StretchBmp(Bitmap1.Canvas.Handle, 800, 600, 400, 300);
}
procedure StretchBmp(SrcDC: HDC; SrcWidth, SrcHeight, DestWidth, DestHeight: Integer);
var
adc: HDC;
abmp: TBitmap;
begin
abmp := TBitmap.Create; try
abmp.Width := DestWidth;
abmp.Height := DestHeight;
StretchBlt(abmp.Canvas.Handle, 0, 0, DestWidth, DestHeight,
SrcDC, 0, 0, SrcWidth, SrcHeight,
SRCCOPY);
with TSaveDialog.Create(nil) do try
if Execute then abmp.SaveToFile(FileName);
finally
Free;
end;
finally
abmp.Free;
end;
end;
 
试了一下,不好用,放大可以,小了图像上有一道道的痕迹...
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
923
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部