我有尺寸的位图图像(宽度= 250,高度= 200)。我正在使用以下代码片段来扩展它,但质量会下降。有没有办法在拉伸时保持位图图像的质量?
with Bitmap do
begin
Width := 200;
Height := 150;
PixelFormat := pf1bit;
TransparentMode := tmAuto;
Canvas.CopyMode := cmSrcCopy;
Canvas.FillRect(Rect(0, 0, Width, Height));
Canvas.StretchDraw(Rect(0, 0, Width, Height), MyBitMap);
end;
此处,MyBitMap
的类型为TBitMap
,我已加载原始位图图片。
AND,这是正确的做法吗?
答案 0 :(得分:4)
Here是一个非常好的过程,名为 SmoothResize(abmp:TBitmap; NuWidth,NuHeight:integer); 。它能够调整TBitmap宽度的高质量。 不要忘记添加两种类型的声明。
StretchDraw方法非常快,是canvas的一部分。你所描述的质量并不那么精彩。如果你想使用StretchDraw将PixelFormat更改为pf24bit并删除FillRect-line。
希望这有助于:)
答案 1 :(得分:0)
可能是因为你有PixelFormat:= pf1bit;
至少使用pf8bit或更好的pf24bit以获得更好的结果,因为你不关心文件大小