Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Сжать JPEG в Delphi XE


Автор: alcogol 3.7.2013, 08:07
Добрый день!

Подскажите пожалуйста новичку. Работаю в XE4 и разрабатываю приложение для iOS. Выгружаю картинки на веб сервер. Есть необходимость немного поиграть с качеством. Помню как это делалось в VCL при помощи TJPEGImage. А не подскажете как сжать файл в FireMonkey?

Автор: Akella 3.7.2013, 09:05
А в FireMonkey что, нет TJPEGImage?

Автор: alcogol 3.7.2013, 09:12
У меня просто не так много опыта, может что и упустил, но переменную такую объявить не получается.  Нашел её описание только в Vcl.Imaging.jpeg

Автор: alcogol 3.7.2013, 09:37
Пробовал делать вот так:

Код

procedure TForm1.Button1Click(Sender: TObject);

var 

Params: TBitmapCodecSaveParams;

begin

Params.Quality := 10

image1.Bitmap.SaveToFile('c:\2.jpg',@Params);

end;



но особо на качестве или размере сохраняемой картинки это не сказывается, точнее никак не сказывается

Автор: MetalFan 3.7.2013, 11:50
alcogol, все ж исходники есть, можно посмотреть... я конечно не претендую на 100% правильность, проверять некогда. Но судя по коду FMX.Types писать надо примерно так::
Код

var 
Params: TBitmapCodecSaveParams;
begin
  Params.Quality := 10;
  TBitmapCodecManager.SaveToFile( 'c:\2.jpg', image1.Bitmap ,@Params);
End;

Автор: alcogol 3.7.2013, 14:46
MetalFan,  спасибо, вроде работает, но...

В общем, обратил внимание на то, что сжимать сжимает, но размер не зависит от коэффициента. После того как попробовал Ваш вариант(хотя сам его глубоко в исходниках видел и вроде бы то что я пишу его в итоге и дергает), попробовал то что писал сам выше. Удивительно, но на выходе получается то же самое. Сжимается как то статически до определенного размера и регулировать компрессию как в старом борландовском делфи не выходит.

Правда сейчас на XE3 эксперементирую, может это баг и в ХЕ4 будет работать нормально, вечером узнаю

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)