Сохранение RotateImage

Использование этой бесплатной программы для обновления некоторых вещей D5-ent для базы данных моего местного садового клуба.

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

Он имеет LoadFromFile, достаточно быстрый и работает очень хорошо, но не имеет SaveToFile. У форума на сайте есть очень старые вопросы о сохранении, но нет однозначных ответов.

Может ли кто-нибудь показать мне, как сохранить изображение после его поворота?

Я нашел в Интернете кучу процедур для сохранения изображений, и ни одна из них, похоже, не работает. Это что-то спасает, но больше не является JPG. Я пытался найти способ сохранить Canvas, но не смог ничего скомпилировать. Как правило, все они ломаются из-за того, что "невозможно назначить растровое изображение / холст, изображение и т. Д. TRotateImage"

Немного из моей глубины здесь.

ps Пробовал ImageEx и Image32, но обе версии для D5 слишком сложны, чтобы использовать их только для сохранения повернутого файла.

1 ответ

Согласно документации TRotateImage это свойство называется RotatedBitmap который хранит повернутое изображение как растровое изображение. Вы можете легко преобразовать это растровое изображение в изображение JPEG, используя TJPEGImage класс от единицы 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 библиотека, которая может применять более сложные преобразования к изображениям, используя различные ядра интерполяции, обрабатывать прозрачность и многое другое. Но если вам просто нужна ротация и вы довольны результатами работы вашего компонента, вы также можете остаться с ним.

Другие вопросы по тегам