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