Обрезка картинок с помощью PHP класса - timthumb.class

В этой статье, я расскажу о замечательном PHP-классе для обработки изображений - timthumb.class.

Многие из Вас задавались вопросом, как вставить картинки в определенный блок с фиксированными размерами. И не просто так, а чтобы картинка не деформировалась.

Как то раз, решая данную задачу наиболее простым способом, и в то же время чтобы все было качественно и оптимизировано, я наткнулся на этот замечательный класс - timthumb.class. Простота его использования меня очень обрадовала, а когда я увидел кэш изображений, то я полюбил timthumb.class еще больше.

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

Вернемся к нашему timthumb.class. Класс уменьшает/увеличивает заданное изображение, и если оно не подходит под заданный размер, он его пропорционально обрезает.

Попробуем его применить:
Возьмем исходное изображение, размером 1024х768 пикселей:
Обрезка картинок с помощью PHP класса - timthumb.class


А теперь, предположим, что у нас есть блок 200х500 пикселей, в который нужно как то разместить эту картинку.
Запускаем локальный веб-сервер и используем timthumb.class:
<img src="http://localhost/timthumb.php?src=myimage.jpg&w=200&h=500&zc=1">


И, что самое интересное, timthumb.class создает папку "cache", в которой сохраняется кэшированное изображение, т.е. при следующем выводе с такими же параметрами, timthumb.class откроет это изображение из кэша. С параметрами timthumb.class я познакомлю Вас чуть ниже, а сейчас посмотрим разницу между обычной вставкой изображения в блок 200x500 и обработкой его с помощью timthumb.class.

Обрезка картинок с помощью PHP класса - timthumb.class


Это самое простейшее применение timthumb.class, для более сложной обработки изображений используйте все возможности timthumb.class:

src - Путь к обрабатываемому изображению
w - Ширина при выводе изображения
h - Высота при выводе изображения
q - Качество изображения (0-100), от него зависит размер изображения занимаемого на диске, а соответственно и скорость загрузки изображения в браузере
a - Позиционирование, от которого будет исходная точка для обрезки изображения. Возможные параметры: c=центр, t=верх, b=низ, r=справа, l=слева.
zc - Увеличение изображения. Могут быть значения от 0 до 3 включительно.

И еще очень крутой параметр - фильтры. f:
1 = negative
2 = Grayscale – изображение в оттенках серого
3 = Brightness – изменение яркости изображения. Могут использоваться положительные и отрицательные значения, для увеличения и уменьшения яркости соответственно.
Пример использования:
<img src="http://localhost/timthumb.php?src=myimage.jpg&w=200&h=500&zc=1&f=3,-50">


4 = Contrast – Регулировка контрастности изображения. По аналогии с яркостью, для увеличения и уменьшения контрастности изображения необходимо указать значение через запятую. Значения больше 0 снизит контраст, а меньше 0 усиливает контрастность.
5 = Colorize/ Tint – Применяет цветовой фильтр к изображению. Требует параметры RGBA, их можно подобрать в приложении HTML коды цветов
Применение фильтра к изображению с помощью PHP класса - timthumb.class

Последнее значение - 1, означает прозрачность.
<img src="http://localhost/timthumb.php?src=myimage.jpg&w=200&h=500&zc=1&f=5,41,255,0,1">


6 = Edge Detect – Выделение краев на изображении
7 = Emboss – Применение рельефа к изображению
8 = Gaussian Blur – Размытие изображения. Можно применить несколько раз.
9 = Selective Blur – Другой тип размытия
10 = Mean Removal – Использует среднее удаление, чтобы создать "поверхностный" эффект. На словах не объяснишь, пробуйте ;)
11 = Smooth – Делает изображение более гладким


Скачать timthumb.class