PHP Качество preview фотографий?

Привет.


С помощью чего можно добиться такого же качества создания превью фотографий как вконтакте?


Я использую либу GD.


Качество фотографии вконтактике:

ff90d871.jpg


Качество фотографии моим скриптом:

75c6265b.jpg


Большое фото: habrastorage.org/storage/cc25b25a/d18df0d0/cf683fb...


При всем при этом фото вконтакте с лучшим качеством весит 7кб, а моя 16кб…


Мой скрипт: pastebin.com/YUAYdPCf


Собственно необходимо решить 2 проблемы.

Сделать качество лучшим и при этом уменьшить размер превью.
  • Вопрос задан
  • 4007 просмотров
Решения вопроса 1
HnH
@HnH
[могу ошибаться]imagecopyresized замени на imagecopyresampled[/могу ошибаться]
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@niko83
Используй GraphicsMagick — и не забудь использовать фильтр для добавления резкости.
Фильтр предаёт чёткость изображению, (хотя в примере на фотке вконтакте он не используется)
в консольном вызове добавить параметр ' -sharpen 1x10'
(можно и ImageMagick там тоже есть этот фильтр)

фрагмент для GraphicksMagick одной PHP либы (название не помню, но если интересует, найду её)

$command = $this->gmPath.' convert'
. ' ' . escapeshellcmd($path) . ' -crop'
. ' ' . $srcWidth . 'x' . $srcHeight . '+' . $srcX . '+' . $srcY
. ' -resize ' . $dstWidth . 'x' . $dstHeight
. ' -sharpen 1x10'
. ' -quality 75'
. ' ' . escapeshellcmd($cacheFile);

exec($command);
Ответ написан
Комментировать
Alroniks
@Alroniks
MODX Джедай, работаю с Laravel
Я думаю, вконтакте не использует GD. В свое время сам столкнулся с проблемой качества. Лучше использовать imagemagic.
Ответ написан
Комментировать
@Jazzist
Используйте imagemagick
convert FROM -resize WxH -quality 90 TO

Пример с PHP:

$original

exec('convert '.$original.' -resize '.$size.' -quality 90 '.$to);
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы