webasyst alpha

  • Фреймворк
  • Приложения
  • Помощь
  • Блог
  • Скачать
  • Демо
  • Возможности
  • Лицензия
  • Документация Webasyst
    • Введение
    • Установка
    • Создание сайта
      • Пример: создание сайта
      • Сайты и маршрутизация
      • Шаблоны и темы оформления
      • Страницы и общие блоки
    • Разработка приложений
      • Пример: приложение «Гостевая книга»
      • Приложение-пустышка
      • Файловая структура
      • Конфигурационные файлы
      • Шаблоны
      • Интерфейс
      • База данных
      • Правила и рекомендации по именованию
      • Маршрутизация в бекенде
      • Маршрутизация во фронтенде
      • Экшены и контроллеры
      • Композитные макеты
      • Права доступа
      • AJAX
      • Переменные окружения
      • Сессии
      • Локализация
      • Мобильная версия
      • Работа с почтой
      • Работа с изображениями
      • Загрузка файлов на сервер
      • Журнал действий пользователя
      • Интеграция с приложением «Сайт»
      • Интеграция с приложением «Контакты»
      • Действия по расписанию
      • Адаптеры авторизации
      • Плагины
    • Настройки сервера
      • Nginx + FastCGI
      • Настройка Cron

Работа с изображениями

Для упрощения наиболее распространенных операций с изображениями (измененить размер, обрезать, повернуть и т. п.) фреймворк предоставляет класс waImage. Этот класс использует стандартную библиотеку PHP (GD либо Imagick) для обработки изображений. Тип используемой библиотеки задается при генерации экземпляра класса. По умолчанию используется библиотека GD. Внимание: для работы с анимированным GIF нужно использовать только расширение Imagick.

Примеры генерации экземпляра waImage из файла изображения:

// GD
$img = waImage::factory("/tmp/1.jpg");
$img = waImage::factory("/tmp/1.jpg", waImage::Gd);
//Imagick $img = waImage::factory("/tmp/1.jpg", waImage::Imagick);

Изменение размеров изображения

// изменение размеров до 100 пикселей по большей стороне, т. е. вписать в прямоугольник
$img->resize(100, 100);

// изменение размеров до 100x100 пикселей без сохранения пропорций
$img->resize(100, 100, waImage::NONE);

// вписать в прямоугольник
$img->resize(100, 200, waImage::AUTO);

// изменение размеров до 100 пикселей по меньшей стороне, т. е. полностью заполнить прямоугольник
$img->resize(100, 100, waImage::INVERSE);

// изменение размеров до 100 пикселей по меньшей стороне
$img->resize(100, 100, waImage::WIDTH);

// равноценно предыдущему
$img->resize(100, false);

Вырезание части изображения

// вырезать квадрат размером 100x100 пикселей в центре изображения
$img->crop(100,100);

// вырезать квадрат из левого верхнего угла изображения
$img->crop(100,100, 0, 0);

// вырезать квадрат слева посередине
$img->crop(100,100, 0 , waImage::CENTER);

// вырезать квадрат нижнего правого угла изображения
$img->crop(100,100, waImage::BOTTOM , waImage::BOTTOM);

Вращение

$img->rotate(270);  // (-360;360)

Чёткость изображения

// метод принимает в качестве параметра значение от 1 до 100 включительно,
//означающее качество изображения в процентах от чёткости оригинального изображения

$img->sharpen($amount);

Сохранение изменённого изображения в файл

$img->save('/tmp/2.jpg');

Пример кода создания файла-эскиза размером 100x100 пикселей из центральной части исходного изображения:

waImage::factory("/tmp/1.jpg")->resize(100, 100, waImage::INVERSE)
  ->crop(100,100)   // вызов метода без параметров: вырезание из центра
  ->save('/tmp/2.jpg');
  • О компании
  • Фреймворк и WebAsyst.ru
    • Language
      • Русский
      • English

© 2011 Webasyst