Задать вопрос
@phpcoder81

Как улучшить качество кроп в PHP?

Подскажите, чем может быть вызвана потеря детализации фотографий после обработки?
Метод
imagecreatefromjpeg
imagecreatetruecolor
imagecopyresampled
imagejpeg($img, $name, 100)
Нужно кропнуть фотографию и добавить. Все работает прекрасно, пока я фотошопом не сделал то же самое. В фотошопе настройки не трогал, качество тоже максимальное. При этом резкости намного больше в ФШ и вес фото на 15-20%.
Неужели PHP не умеет делать качественный ресайз? Вроде математика и в Африке - математика))
  • Вопрос задан
  • 904 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Androguide
@Androguide
TeamLead AG
Вам нужен php.net/manual/ru/book.imagick.php
Там есть различные методы, некоторые кропят и уменьшают с средним качеством а некоторые как PS.
Но вы должны понимать, что при хорошем качестве будет и хорошая нагрузка.

$i = new \Imagick($target);
// По сути сначала вы делаете кроп 
$i->cropImage(...);
// Затем уменьшаете без потери качества
$i->ThumbnailImage($width, $height, true);


Вот, есть хороший обзор/урок sunnyblik.livejournal.com/39172.html?page=1
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
imagejpeg() - качество не указываете? по умолчанию около 75.
imagecopyresampled - если вы ресайзите, это тоже может побить картинку.

В фотошопе намного шире выбор алгоритмов сжатия, GD и близко не стоит. В imagemagick получше, но до фотошопа далеко.
https://foliovision.com/2010/03/imagemagick-vs-gd
Ответ написан
Строго личное мнение - алгоритм алгоритму рознь, я, например, в свое время тестил несколько разных подходов, библиотек, сталкивал GD с Imagick и т.д. - разница ощущалась.

Насчет фотошопа - думается мне, что просто ADOBE, будучи крутыми разработчиками и долго занимаясь своим продуктом, доработали или переработали алгоритмы сжатия jpeg.

Могу ошибаться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы