Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: И снова качество картинок после уменьшения!
 
 автор: Anwor   (30.03.2009 в 21:11)   письмо автору
 
 

Добрый день всем. Облазил форум вдоль и поперек в поисках подобных тем, однако везде в них говорится о качестве сжатия, и проблема везде решается как правило выставлением параметра quality=100 в функции imagegpeg.
Я написал специальный упрощенный класс для работы с изображениями, и по умолчанию фотки он генерирует с 100-м качеством. Но тем не менее, качество их оставляет желать лучшего! Я имею в виду не то, что картинка должна остаться пиксель-в-пиксель такой же, если ее увеличить. Я говорю о том, чтобы она цивильно смотрелась и в уменьшенном варианте.
Для примера дам 3 ссылки. Сравните пожалуйста.

1) Исходное изображение.
http://ayrin.ru/src.jpg

2) Далее - результат отработки класса. Процесс обработки изображения включает в себя:
- поворот на 12 градусов,
- небольшое обрезание для частичного избавления от черных областей,
- пропорциональное уменьшение,
- обрезка до требуемых размеров 500*175.
http://ayrin.ru/auto.jpg

3) Наконец, ручное повторение указанного тех-процесса в фотошопе. Посмотрите на разницу с результатом работы программы:
http://ayrin.ru/manual.jpg

В основном меня не устраивает то, как переотрисовываются пиксели. В фотошопной версии оно все как бы сглаженно, а тут - кубиками, некрасиво. Может есть идеи, как исправить это?

Очень надеюсь на помощь, спасибо.

  Ответить  
 
 автор: sim5   (30.03.2009 в 21:33)   письмо автору
 
   для: Anwor   (30.03.2009 в 21:11)
 

Применяйте фильтр, правда в GD их не так уж и много, но.... А вообще GD это не Фотошоп.

  Ответить  
 
 автор: Anwor   (30.03.2009 в 21:37)   письмо автору
 
   для: sim5   (30.03.2009 в 21:33)
 

Да, еще хотел показать для наглядности..

опять же мануально сделанная картинка
http://ayrin.ru/mini.jpg

и ее автоматический аналог..
http://ayrin.ru/mini_auto.jpg

просто чудовищная пикселизация.

Sim5, а не могли бы привести примерчик? кажется я эту тему как-то пропустил..

  Ответить  
 
 автор: sim5   (31.03.2009 в 06:27)   письмо автору
 
   для: Anwor   (30.03.2009 в 21:37)
 

Еще раз повторяю - GD это не фотошоп, это примитная работа с изображениями, так что удивляться нечему. Насчет фильтра, то здесь читать. Но его применение навряд ли кардинально изменит ситуацию. И учтите, для локальных цветов лучше подходит индесированный цвет (GIF), меньше терять будете при преобразованиях.
Есть еще библиотека ImageMagick, можете ее попробовать, возможностей у нее по больше чем у GD, по крайней мере это гласит из описания, но я с ней не работал.

  Ответить  
 
 автор: Anwor   (01.04.2009 в 18:27)   письмо автору
 
   для: sim5   (31.03.2009 в 06:27)
 

Sim5, спасибо большое, щас буду экспериментировать с фильтрами...

Кстати, насчет GIF: я пробовал пускать под преобразование аналогичную картинку PNG (а это тоже индексная палитра), результат точно тот же что и с JPG..

  Ответить  
 
 автор: sim5   (01.04.2009 в 18:40)   письмо автору
 
   для: Anwor   (01.04.2009 в 18:27)
 

Я вам не про PNG говорил, а об индексированной палитре. И это не обязательно GIF, перед преобразованием, изображение можно привести к индексированной палитре.

  Ответить  
 
 автор: mihdan   (31.03.2009 в 12:45)   письмо автору
 
   для: Anwor   (30.03.2009 в 21:11)
 

imagejpeg($src, '', 100); - последний параметр качество

  Ответить  
 
 автор: Trianon   (31.03.2009 в 13:51)   письмо автору
 
   для: mihdan   (31.03.2009 в 12:45)
 

> для: Anwor (30.03.2009 в 21:11)

>imagejpeg($src, '', 100); - последний параметр качество

Вот Вы отвечаете на это сообщение Anwor (30.03.2009 в 21:11)
Вы хотя бы его первую строку прочли?

  Ответить  
 
 автор: Anwor   (03.04.2009 в 21:19)   письмо автору
 
   для: Anwor   (30.03.2009 в 21:11)
 

ЛЮДИ! Исключительно тернистым экспериментальным путем УСТАНОВИЛ-таки, из-за чего такое плохое качество было у резайзных фоток!!!

Оказывается, суть кроется в 2 будто бы аналогичных функциях - imagecopyresized() и imagecopyresampled()! Даже здесь, на софттайме, в мануале у этих двух функций абсолютно одинаковое описание, хотя это не так. Используя imagecopyresized, я получал то что получал. А подставив эксперимента ради вместо нее imagecopyresampled, получил совсем иной качественный результат!!! С тем сглаживанием, которого хотел добиться!

Для сравнения я выложил картинки, сделанные тем и другим способом:
http://ayrin.ru/test.html Посмотрите на разницу!

Да, конечно, на всех софттаймовских шаблонах используется именно imagecopyresampled, но например когда я собирал инфу о GDlib по сети, я наткнулся и на imagecopyresized, и тогда не придал этому значения, сочтя что они абсолютно одинаковые.

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

  Ответить  
 
 автор: ФрекенБок   (04.04.2009 в 16:16)   письмо автору
 
   для: Anwor   (03.04.2009 в 21:19)
 

Спс за сравнение, когда-нибудь пригодится.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования