23.1. Методы класса
picture::__controller(string fileName, [string type]);
Конструктор класса. fileName — имя файла (должно включать полный путь); type — MIME-тип изображения (допустимо указывать расширение имя файла). MIME-тип необходимо указывать в тех случаях, когда fileName не содержит расширения файла и нет возможности определить его тип.
Если файл не является корректным изображением, то переменная controller::$error будет содержать текст сообщения об ошибке.
picture::resize([mixed width], [mixed height]);
Изменяет размеры исходного изображения. Если один из параметров (ширина или высота) не задан, то он будет рассчитан по второму параметру пропорционально исходному размеру. width и height могут быть целым числом (точный размер в пикселях), или строкой, состоящей из символа «>» (больше) или «<» (меньше) и следующего за ним числа. Во втором случае размеры будут пропорциональны исходным, но «не более» или «не менее» заданного.
Для наглядности примеры размеров:
Width |
Height |
Результат |
400 |
null |
Ширина — 400 пикселей, высота — пропорционально исходной |
400 |
300 |
Ширина — 400 пикселей, высота — 300 пикселей |
<600 |
null |
Ширина соответствует исходной, если она меньше 600 пикселей или равна 600 пикселей, если исходная ширина больше. Высота пропорциональна исходной. |
<800 |
<600 |
Изображением «вписывается» (с сохранением пропорций) в размер 800x600, если по одной или обоим граням оно больше заданного. |
null |
>300 |
Высота будет растянута до 300 пикселей, если исходная меньше. Ширина пропорциональна исходной. |
picture::watermark(string fileName, mixed x, mixed y);
Накладывает водный знак на изображение. fiileName — имя файла изображения, содержащего водный знак. Параметры x и y задают координаты расположения водного знака: целые положительные числа — отсутп в пикселях от левого и верхнего края, отрицательные целые числа — отсуп в пикселях от правого и нижнего края изображения, строка, состоящая из числа и знака «%» - задаёт отступ в процентах от размеров изображений (например picture::watermark('myfile.png','50%','50%') расположит водный знак точно по центру изображения).
picture::save(string fileName, [integer quality], [string type]);
Сохраняет обработанное изображение в файл. Параметр fileName (имя файла) необходимо указывать БЕЗ РАСШИРЕНИЯ. quality — качество изображения для формата JPEG (число от 1 до 100). type — MIME-тип (допускается указывать расширение файла), если не указан, то будет сохранён в том же формате, что и исходный файл.
Функция picture::save() возвращает расширение сохранённого файла или false в случае неудачи.
Реализация picture::save() и необходимость дополнительно указывать MIME-тип необходима для того, чтобы упростить работу с изображениями, находящимися в $_FILES, когда имя файла не содержит расширения. Однако реализация получилась не слишком удачной и, вероятно, этот класс будет доработан в будущем.