Delphi 调整图像大小并保存输出
我在这里看到许多关于调整图像大小的问题/答案 但是我找不到适合我的箱子 ,它仅在您希望从大图像中获得小图像时才起作用 但是,如果您有一张24x24尺寸的图片,并且希望将其调整为256x256尺寸,则Delphi 调整图像大小并保存输出,delphi,delphi-10-seattle,Delphi,Delphi 10 Seattle,我在这里看到许多关于调整图像大小的问题/答案 但是我找不到适合我的箱子 ,它仅在您希望从大图像中获得小图像时才起作用 但是,如果您有一张24x24尺寸的图片,并且希望将其调整为256x256尺寸,则过程将失败,并为您提供扭曲的图片 下面的代码是我试图解决问题的代码 Graph := TBitmap.Create; try // After loading a .bmp file to Image1 with 48x48 dimension Graph.Assign( Ima
过程将失败,并为您提供扭曲的图片
下面的代码是我试图解决问题的代码
Graph := TBitmap.Create;
try // After loading a .bmp file to Image1 with 48x48 dimension
Graph.Assign( Image1.Picture.Bitmap );
Graph.Canvas.StretchDraw(Rect(0, 0, 255, 255), Graph);
Graph.SetSize(255,255);
Graph.SaveToFile('Location\Resault.bmp');
finally
Graph.Free;
end;
原始图像:
结果(左上角有黑色部分的白色正方形):
我们如何将图像加载到TImage
并转换/调整其大小并保存更改?感谢的评论,它非常有用
var Graph : TBitmap; Conv : TBitmap;
begin
Graph := TBitmap.Create;
try
Graph.Assign( Image1.Picture.Bitmap );
Conv := TBitmap.Create;
try
Conv.SetSize(255,255);
Conv.Canvas.StretchDraw(Rect(0, 0, 255, 255), Graph);
Conv.SaveToFile('Location\Resault.bmp');
finally
Conv.Free;
end;
finally
Graph.Free;
end;
end;
使用带有255x255的临时位图,并在其上绘制小位图。然后,如果愿意,重新分配到图形。在将小图像调整为大图像时,不要期望看到很好的结果。@kobik谢谢你的评论,我会尝试一下@Sami在这段代码中,你可以删除Graph变量并直接使用Image1.Picture.BitMap你说的是256吗255@PatrickPREMARTIN好,我已经这样做了,它总是用黑色背景扩展图像。然后,它将其保存为TImage上显示的内容。这是我能够成功调整大小和保存的唯一方法…@ThN您使用VCL还是FMX?StretchDraw看起来很糟糕,我会使用GR32重采样器。