Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.28;
Скачать: CL | DM;

Вниз

Уменьшить JPEG   Найти похожие ветки 

 
Nell   (2008-08-15 15:19) [0]

Никто не знает как уменьшить JPEG.

В интерненте есть только примерно одинаковые варианты с использованием TBitMap, что-то типа такого
http://e-dok.narod.ru/delphi/question1/graf/graf-017.html
с небольшими изменениями. При таком способе очень страдает качаство.
А с помощью стандартных процедур TJPEGImage можно уменьшить только в 2, 4 или 8 раз, хотелось бы большего.


 
Anatoly Podgoretsky ©   (2008-08-15 15:24) [1]

> Nell  (15.08.2008 15:19:00)  [0]

Все операции с контентом осуществляются только над BitMap, даже если это и скрыто от конечного пользователя и ты тоже так поступай.


 
easy ©   (2008-08-15 16:01) [2]

http://www.swissdelphicenter.ch/torry/showcode.php?id=1896


 
antonn ©   (2008-08-15 16:29) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
 bmp: TBItmap;
 jpg: TJpegImage;
 scale: Double;
begin
 if opendialog1.execute then
 begin
   jpg := TJpegImage.Create;
   try
     jpg.Loadfromfile( opendialog1.filename );
     if jpg.Height > jpg.Width then
       scale := 50 / jpg.Height
     else
       scale := 50 / jpg.Width;
     bmp:= Tbitmap.Create;
     try
       {Create thumbnail bitmap, keep pictures aspect ratio}
       bmp.Width := Round( jpg.Width * scale );
       bmp.Height:= Round( jpg.Height * scale );
       bmp.Canvas.StretchDraw( bmp.Canvas.Cliprect, jpg );
       {Draw thumbnail as control}
       Self.Canvas.Draw( 100, 10, bmp );
       {Convert back to JPEG and save to file}
       jpg.Assign( bmp );
       jpg.SaveToFile(ChangeFileext( opendialog1.filename, "_thumb.JPG" ));
     finally
       bmp.free;
     end;
   finally
     jpg.free;
   end;
 end;
end;


 
Nell   (2008-08-19 15:33) [4]

К сожалению, после подобных преобразований качество изображения становится ужасным


 
DVM ©   (2008-08-19 15:35) [5]


> Nell   (19.08.08 15:33) [4]

твое желание похоже на желание выпить половину содержимого бутылки, не открывая бутылку.


 
oldman ©   (2008-08-19 15:38) [6]


> Nell   (15.08.08 15:19)  
> Никто не знает как уменьшить JPEG.


> Nell   (19.08.08 15:33) [4]
> К сожалению, после подобных преобразований качество изображения
> становится ужасным


Угадай с трех раз -
Если бы можно было уменьшить без потери качества, этого не сделали бы нормальные разработчики работы с jpeg? Не был бы изменен сам формат jpeg? Или они так, зазря зарплату получают?


 
Nell   (2008-08-19 15:45) [7]

Спасибо, помогли, профи!

Стандартная функция уменьшает с гораздо меньшей потерей качества. Всё дело в алгоритме.


 
oldman ©   (2008-08-19 15:51) [8]


> Nell   (19.08.08 15:45) [7]
> Стандартная функция уменьшает с гораздо меньшей потерей
> качества.


А зачем лез с вопросом?


 
antonn ©   (2008-08-19 15:51) [9]

:)
http://delphimaster.net/view/8-1219132442/


 
Nell   (2008-08-19 15:56) [10]


> > Nell   (19.08.08 15:45) [7]
> > Стандартная функция уменьшает с гораздо меньшей потерей
>
> > качества.
>
>
> А зачем лез с вопросом?
> <Цитата>


Ты вообще вопросы на которые пытаешься ответить читаешь?


 
oldman ©   (2008-08-19 15:59) [11]


> Nell   (19.08.08 15:56) [10]


А зачем, если их не читает даже автор?


 
Nell   (2008-08-19 16:58) [12]


> antonn ©   (19.08.08 15:51) [9]
> :)
> http://delphimaster.net/view/8-1219132442/


Спасибо. Это самый лучший вариант из того, что я нашла :))) Оказывается всё так просто :)))



Страницы: 1 вся ветка

Текущий архив: 2008.09.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
3-1206518870
DelphiN!
2008-03-26 11:07
2008.09.28
Выборка только 1ой записи, удовлетворяющей условие


2-1218925736
demon
2008-08-17 02:28
2008.09.28
Восстановить свернутое окно?


3-1206449697
vvv_spb
2008-03-25 15:54
2008.09.28
кто из пользователей использует таблицу


15-1218183143
Dennis I. Komarov
2008-08-08 12:12
2008.09.28
Аборигены! Тут никого не будет? (вторник)


2-1219137611
AlexanderMS
2008-08-19 13:20
2008.09.28
Нужно ли делать такие вызовы перед выходом из программы?