![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уменьшить JPEG [D7, XP]
Nell © (2008-08-15 15:19:00)Никто не знает как уменьшить JPEG.
В интерненте есть только примерно одинаковые варианты с использованием TBitMap, что-то типа такого
http://e-dok.narod.ru/delphi/question1/graf/graf-017.html
с небольшими изменениями. При таком способе очень страдает качаство.
А с помощью стандартных процедур TJPEGImage можно уменьшить только в 2, 4 или 8 раз, хотелось бы большего.
Nell (2008-08-19 16:58:00) [1]
> antonn © (19.08.08 15:51) [9]
> :)
> http://delphimaster.ru/cgi-bin/forum.pl?id=1219132442&n=7
Спасибо. Это самый лучший вариант из того, что я нашла :))) Оказывается всё так просто :)))
oldman (2008-08-19 15:59:00) [2]
> Nell (19.08.08 15:56) [10]
А зачем, если их не читает даже автор?
Nell (2008-08-19 15:56:00) [3]
> > Nell (19.08.08 15:45) [7]
> > Стандартная функция уменьшает с гораздо меньшей потерей
>
> > качества.
>
>
> А зачем лез с вопросом?
> <Цитата>
Ты вообще вопросы на которые пытаешься ответить читаешь?
oldman (2008-08-19 15:51:00) [4]
> Nell (19.08.08 15:45) [7]
> Стандартная функция уменьшает с гораздо меньшей потерей
> качества.
А зачем лез с вопросом?
antonn (2008-08-19 15:51:00) [5]:)
http://delphimaster.ru/cgi-bin/forum.pl?id=1219132442&n=7
Nell (2008-08-19 15:45:00) [6]Спасибо, помогли, профи!
Стандартная функция уменьшает с гораздо меньшей потерей качества. Всё дело в алгоритме.
oldman (2008-08-19 15:38:00) [7]
> Nell (15.08.08 15:19)
> Никто не знает как уменьшить JPEG.
> Nell (19.08.08 15:33) [4]
> К сожалению, после подобных преобразований качество изображения
> становится ужасным
Угадай с трех раз -
Если бы можно было уменьшить без потери качества, этого не сделали бы нормальные разработчики работы с jpeg? Не был бы изменен сам формат jpeg? Или они так, зазря зарплату получают?
DVM (2008-08-19 15:35:00) [8]
> Nell (19.08.08 15:33) [4]
твое желание похоже на желание выпить половину содержимого бутылки, не открывая бутылку.
Nell (2008-08-19 15:33:00) [9]К сожалению, после подобных преобразований качество изображения становится ужасным
antonn (2008-08-15 16:29:00) [10]
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;
easy (2008-08-15 16:01:00) [11]http://www.swissdelphicenter.ch/torry/showcode.php?id=1896
Anatoly Podgoretsky (2008-08-15 15:24:00) [12]> Nell (15.08.2008 15:19:00) [0]
Все операции с контентом осуществляются только над BitMap, даже если это и скрыто от конечного пользователя и ты тоже так поступай.