Автоматическая генерация preview или качественный ресайз картинок
Обработка изображений – то, с чем сталкивается рано или поздно любой web-разработчик. Неважно какая задача перед вами стоит: генерация preview картинок или captcha это все свзяано с работой с графикой. Вот тут-то и начинаются обычно сложности, т.к. стандартная библиотека GD весьма примитивна. Кроме того, она сильно портит изображение при его ресайзе. Поэтому, я хочу рассказать об основах работы с Image Magic, правда далеко не на всех хостингах вы сможете найти расширение Imagick php. Еще раз хочу оговориться, если у Вас обыкновенный хостинг-перепроверьте установлен ли Image Magic (это можно сделать с помощью phpinfo()), в ином случае у Вас просто ничего не будет работать.
Вот приблизительно код который вы сможете использовать для автоматической генерации preview.
|
Теперь по порядку. Во первых задаем ширину и высоту желаемого изображения, которое мы получим в результате. Далее создаем обьект класса Imagick (если вы не знакомы с ООП – не пугайтесь, в последующих статьях я постараюсь описать что это и с чем его едят
На данный момент считайте что это «массив» на который можно воздействовать методами (функциями) класса Imagick, и получать элементы этого массива не $variable['key'], a $variable->key ).
После создания обьекта мы получаем исходное изображение из файла (метод readImage(), параметр которого-путь до файла). Далее получаем ширину и высоту исходного изображения.
Следующий кусок кода взят из официального мануала, чтобы соблюсти соотношение сторон и чтобы генерируемое изображение не выглядело вытянутым или сжатым (именно поэтому результирующее изображение будет не именно того размера который мы задали в начале, а, возможно, лишь одна из сторон будет соответствовать).
thumbnailimage собственно непосредственно ресайзит изображение. В отличии от аналогичных функций в GD «имага» получается не зашумленная. Далее сохраняем полученное изображение в файл и убираем за собой
. Вот и все. Вообще Image Magick очень сильный инструмент для работы с картинками и я рекомендую почитать документацию по данной библиотеке на офф сайте php.
Действительно КАЧЕСТВЕННЫЙ метод! Мне понравился! Спасибо
Спасибо, а крупные хостинг компании (РУ-Центр) поддерживают image magic?
Это надо общаться с саппортом
Достаточно качественный метод генерации, не смотря на малый объем статьи и кода, он действительно работает на ура!!!
Спасибо!