Войти  Зарегистрироваться


PHP библиотека Image Transform для обработки изображений

(5 голоса, среднее 4.60 из 5)

По мере развития технологий Web 2.0 (в частности соц. сетей, блогов и др.) для разработчиков сайтов всё актуальней становится задача обработки
изображений средствами PHP. Дальше я расскажу о библиотеке Image Transform, которая входит в пакет PEAR. Основное назначение данной библиотеки - масштабирование
изображений. Рассмотрим подробнее методы данного класса и их применение.Большинство из методов вызывают основной метод изменения размера с различными
параметрами.

Вот их краткий список:
resize - общий метод изменения размера. Параметром функции является значение размера изображения, параметр может быть строкой, когда нужно указать
размер в процентах (использовать вместе с %) или фактором масштабирования для x и y значений. Используйте параметр 0, чтобы оставить размер таким же.
Пропорции изображения не обязательно сохранять.
scaleByX - масштабирует изображение по ширине, устанавливая её в соответсвтии с переданным значением в пикселях. Не меняет пропорции изображения.
scaleByY - масштабирует изображение по высоте, устанавливая её в соответсвтии с переданным значением в пикселях. Не меняет пропорции изображения.
scale - главная функция масштабирования. Принимает параметр в пикселях, процентах (с %) или коэффициент масштабирования (<1). Сохраняет пропорции.
scaleByPercentage - масштабирует изображение по переданному значению процентов.
scaleByFactor - то же что и scaleByPercentage(), только параметром являются числа от 0 до 1.
scaleByLength - масштабирует так, что длиннее размер становится желаемым размером.
fit - масштабирует изображение так, что оно вписывается в заданную рамку (ширина и высота). Ничего не меняет, если изображение уже нужного размера или меньше него.
fitX - масштабирует изображение так, что ширина изображения становится заданной. Ничего не меняет, если ширина изображения уже меньше, чем заданная.
fitY - масштабирует изображение так, что высота изображения становится заданной. Ничего не меняет, если высота изображения уже меньше, чем заданная.
Другие функции:
crop - обрезает изображение.Принимает параметры: ширина и высота обрезанного изображения.
flip - вертикально отзеркаливает изображение.
mirror - горизонтально отзеркаливает изображение
rotate - поворачивает изображение по часовой стрелке на заданный угол (в градусах).
Теперь посмотрим как использовать данный класс вместе с функциями. Внизу страницы прикрепляю рабочие примеры со всем необходимыми файлами для работы класса. Поэтому,
сейчас только кратко опишу принцип использования библиотеки.
Первый шаг в использовании Image_Transform заключается в том, что надо создать объект драйвера для работы с изображением. Осуществляется данный шаг с помощью функции
factory(), которой надо передать имя импользуемого вами драйвера. Вы можете опустить имя драйвера. В этом случае, Image_Transform проверяет Imagick2, GD и Imlib и использует
тот драйвера, который нашелся первым. Рекомендую драйвер GD, так как он поддерживает наибольшее количество функций данного класса. Затем вы можете загрузить изображение, с
которым вы будете работать путём передачи имени изображения в функцию load(). Далее используйте один из методов масштабирования, после чего можете сохранить изображение, передав
функции save() имя нового (измененого) изображение. Вы не можете выполнять несколько функций масштабирования подряд без сохранения между ними.

Пример масштабирования изображения:

 

<?php

require_once 'Image/Transform.php';

//создание объекта драйвера
$it = Image_Transform::factory('GD');

//загрузка исходного файла
$it->load('beach-large.jpg');

//масштабирование его до 150 пикселей
$it->scaleMaxLength(150);

//сохранение в другом файле
$it->save('beach-150px.jpg');
?>

Комментарии
⇓⇑ Добавить новый Поиск RSS
Имя:
Email:
 
Тема:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Пожалуйста, введите проверочный код, который Вы видите на картинке.
Написал: Владимир |2011-12-05 15:24:21
avatar Просто и ясно, спасибо!