2016-03-21 1 views
0

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

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

Он имеет LoadFromFile, достаточно быстро и работает очень хорошо, но это не имеет никакого SaveToFile. На форуме на сайте есть несколько очень старых вопросов, которые задают вопрос о сохранении, но нет окончательных ответов.

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

Я нашел кучу подпрограмм в Интернете для экономии изображения, и ни один из них, похоже, не работает. Это что-то экономит, но это уже не JPG. Я пробовал искать способ сохранить холст, но не смог собрать ничего. Как правило, все они сломались с помощью «Невозможно назначить растровое изображение/холст, изображение/etc в TRotateImage»

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

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

ответ

4

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

+0

Спасибо, я попробую это позже сегодня. Я установил графику 32, но у нее большая кривая обучения, и я не хочу, чтобы она переписывалась с этим старым приложением. – user2175495

Смежные вопросы