Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 调整图像大小并保存输出_Delphi_Delphi 10 Seattle - Fatal编程技术网

Delphi 调整图像大小并保存输出

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

我在这里看到许多关于调整图像大小的问题/答案

但是我找不到适合我的箱子

,它仅在您希望从大图像中获得小图像时才起作用

但是,如果您有一张24x24尺寸的图片,并且希望将其调整为256x256尺寸,则
过程将失败,并为您提供扭曲的图片

下面的代码是我试图解决问题的代码

  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重采样器。