Kohana. Модуль Image



kohana Модуль Image это просто суперский модуль! С его помощью программист на Kohana может легко и не сильно вдаваясь в детали обрабатывать изображения. Можно конечно залезть в библиотеку GD и делать всё там вручную. Но так пусть делают у кого времени вагон. А нам нужен результат, и быстро.

У модуля один только недостаток. Нет описания. То есть его просто нет (на момент написания материала мануал по модулю был пуст). И я спешу хоть немного восполнить пробел

Хоть всё можно подсмотреть в коде, тем не менее попробую дать небольшое описание этому модулю. Без претензий на полноту, только в качестве начального толчка.

Всё начинается с создания объекта.

1
$image=Image::factory($localfilename);

Указываем имя файла и получаем объект.

Пример наложения водяного знака
=====================================

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Создаём объект
 $image=Image::factory($localfilename);
 
// Считываем файл водяного знака. 
// Это кстати тоже изображение
 $watermark= Image::factory($watermarkfilename);
 
// Используем метод watermark
 $result= $image->watermark(
               // Задаём изображение для водяного знака
                $watermark,                                     
               // Координата X для знака
                $image->width - $watermark->width-2,  
               // Координата Y для знака
                $image->height-$watermark->height-2, 
               // Коэффициент прозрачности
                35)
       // Метод render - строит изображение 
       ->render();
 
// Нужно задать заголовок ответа. А он зависит от типа файла.
 switch ($image->type){
     case IMAGETYPE_JPEG:
         $this->request->headers['content-type'] = 'image/jpeg';
         break;
     case IMAGETYPE_GIF:
         $this->request->headers['content-type'] = 'image/gif';
         break;
     case IMAGETYPE_PNG:
         $this->request->headers['content-type'] = 'image/png';
         break;
 }
// Вывод готового изображения
echo $result;

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

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

1
$result= $image->resize($new_width);

Для обрезания также есть отдельная функция crop. Нужно задать ширину, высоту кадра, а также смещение относительно верхнего левого угла.

1
$result= $image->crop($width, $height, $offset_x, $offset_y);

Последние два параметра являются необязательными.

Прочие функции
==================================
Вышеперечисленных функций среднему разработчику скорее всего хватит за глаза. Однако в модуле ещё много функций. Достаточно почитать исходник. Они достаточно хорошо описаны. Тут просто приведу список

  • rotate – поворот изображения
  • flip- отражение изображения
  • sharpen - резкость
  • reflection - добавить отражение
  • background - добавить фон
  • save - сохранить результат в файл.

Все эти действия можно делать в разной последовательности. Всё зависит от фантазии.

Пока всё =)

Посты по теме:

  1. Модуль AUTH в Kohana
  2. NB: HTTP-редирект 301 в Kohana
  3. Kohana для чайников. Простейший ORM
  4. Kohana 3.0. Шпаргалка по ORM
  5. Google Analytics в Kohana

Категории Kohana |
автор: altesack / Среда, Апрель 27, 2011 / Comments Off

Комментирование закрыто.