保存RotateImage

时间:2016-03-21 20:31:47

标签: delphi delphi-5

使用此免费软件为我当地的园艺俱乐部数据库更新一些D5内容。

http://www.delphiarea.com/products/delphi-components/rotateimage/

它有一个LoadFromFile,足够快并且运行良好,但它没有SaveToFile。该网站上的论坛有一些非常古老的问题,关于节约,但没有明确的答案。

有人可以告诉我如何在旋转后保存图像吗?

我在网上发现了一堆用于图像保存的例程,但它们似乎都没有用。它节省了一些东西,但它不再是JPG。我试图寻找一种保存Canvas的方法,但无法编译任何东西。一般来说,它们都会被"无法将位图/画布,图片/等分配到TRotateImage"

这里有点深度。

P.S。尝试过ImageEx和Image32,但D5的两个版本都太复杂了,不能仅用于保存旋转的文件。

1 个答案:

答案 0 :(得分:4)

根据TRotateImage的文档,它有一个名为RotatedBitmap的属性,它将旋转的图像存储为位图。您可以使用单位TJPEGImage中的jpeg类轻松将该位图转换为JPEG图像:

uses jpeg;

procedure SaveRotatedImage;
var
  jpg: TJPEGImage;
begin
  jpg := TJPEGImage.Create();
  try
    jpg.Assign(YourRotateImage.RotatedBitmap);
    jpg.SaveToFile('filename.jpg');
  finally
    jpg.Free;
  end;
end;

作为TRotateImage的替代方案,我推荐Graphics32库,它可以使用各种插值内核对图像应用更复杂的变换,处理透明度等等。但是,如果您只需要轮换并对组件的结果感到满意,那么您也可以坚持下去。