| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Как создать маленькое изображение из большого? |
| Автор: Nicholas 14.5.2009, 04:41 |
| У меня на сайте фотоальбом, каждый раз для добавления фотки приходиться в фотошопе создавать маленькую фотку (привью)... :( Собственно вопрос в следующем, как сделать из большой фотографии фотку заданного размера и ровно обрезать если она не квадратная. Например есть jpg файл размером 1200*720 - широкоформатный, из него надо сделать файлик содержащий фотку размером 110*110, но не просто уменьшить первоначальную и растянуть по размеру, а вырезать кусок точно по середине, в данном случае это получиться 720*720 и уменьшить до 110*110. Честно говоря, вообще не работал с графикой поэтому, прошу подробно объяснить. |
| Автор: MetalFan 14.5.2009, 08:20 |
| может не изобретать велосипед, а взять какую-нибудь acdsee или irfanview или еще что-нибудь подобное? Добавлено через 1 минуту и 24 секунды а программно два самых простых варианта: с пом. функций GDI, либо GDI+. второе посложнее, но качественнее (ресайз) и быстрее. |
| Автор: Alexeis 14.5.2009, 09:27 |
| Думаю если фотоальбом, то качество имеет значение. Говорят лучшее качество дает фильтр Lanczos см. http://www.torry.net/quicksearchd.php?String=Lanczos&Title=No А вообще, схема такая. Конвертирование в BMP(GDI+, Intel Jpeg)->Обрезка(Canvas.CopyRect)->Ресайз(Бикубик GDI+ или Lanczos)->Конвертирование в JPEG(GDI+, Intel Jpeg) 1)Конвертирование в BMP(GDI+, Intel Jpeg). GDI+ есть у нас в факе, Intel Jpeg есть тут на форуме. 2) Все ясно, есть в справке 3) Выбор алгоритма 4) Аналогично 1 |
| Автор: Dimonka2 14.5.2009, 13:37 |
| Вполне хватит Graphics32. Там есть и готовые фильтры для изменения размеров, поддержка прозрачности, удобный просмоторщик. Lanczos не даёт лучшее качество, а даёт лучшую резкость. Фотошоп всё равно использует бикубический фильтр для ресайза, чтобы не привносить искажений. |
| Автор: Nicholas 15.5.2009, 03:36 |
| Для малюсенькой картинки 110*110 качество в принципе не нужно. Ниукого нет примерного кода с использованием Graphics32? |
| Автор: Dimonka2 15.5.2009, 15:57 | ||
Код рисования ImageBackground на Bitmap. Рзмеры сам подберёшь.
|