waImage

Обработка изображений

Содержание...

Для работы с изображением создайте экземпляр класса, передав в его фабричный метод путь к файлу изображения, например:

$image = waImage::factory($path);
$image->rotate(90);

Методы

  • crop

    Вырезает фрагмент изображения.

  • factory

    Возвращает экземпляр класса waImage для обработки указанного графического файла.

  • filter

    Применяет фильтр к изображению.

  • fixImageOrientation

    Восстанавливает ориентацию изображения согласно его EXIF-данным.

  • getExt

    Возвращает расширение имени графического файла, соответствующее его типу.

  • getPixel

    Возвращает информацию об указанном пикселе изображения.

  • isWebpSupported

    Проверяет поддержку формата WebP.

  • resize

    Выполняет масштабирование изображения.

  • rotate

    Выполняет поворот изображения.

  • save

    Сохраняет изображение с указанным уровнем качества в файл.

  • sharpen

    Применяет фильтр резкости к изображению.

  • watermark

    Накладывает водяной знак на изображение.

public function crop ($width, $height, $offset_x = self::CENTER, $offset_y = self::CENTER, $deny_exceed_original_sizes = true)

Вырезает фрагмент изображения.

Параметры

  • $width

    Ширина вырезаемой части изображения.

  • $height

    Высота вырезаемой части изображения.

  • $offset_x

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

  • $offset_y

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

  • $deny_exceed_original_sizes

    Флаг, позволяющий размерам вырезаемой части превышать размеры исходного изображения. Если не указано, по умолчанию используется значение true.

Пример

$image = waImage::factory($image_path);
$image->crop(100, 100);

public static function factory ($file, $adapter = false)

Возвращает экземпляр класса waImage для обработки указанного графического файла.

Параметры

  • $file

    Путь к графическому файлу, окторый необходимо обработать.

Пример

$image = waImage::factory($image_path);
//здесь можно вызывать публичные методы объекта $image для обработки указанного изображения

public function filter ($type, $params = [])

Применяет графический фильтр к изображению.

Параметры

  • $type

    Тип фильтра. Допустимые строковые значения:

    • FILTER_GRAYSCALE: черно-белая гамма
    • FILTER_SEPIA: сепия
    • FILTER_CONTRAST: контраст
    • FILTER_BRIGHTNESS: яркость
  • $params

    Ассоциативный массив параметров для наложения фильтров CONTRAST и BRIGHTNESS со следующими ключами:

    • level: целочисленное значение степени воздействия фильтра от 1 до 100. Если не указано, по умолчанию используется значение 3.

Пример

$image = waImage::factory($image_path);
$image->filter('CONTRAST', ['level' => 15]);

public function fixImageOrientation()

Восстанавливает ориентацию изображения согласно его EXIF-данным.

Пример

$image = new waImage($image_path);
$image->fixImageOrientation();

public function getExt()

Возвращает расширение имени графического файла, соответствующее его типу.

Пример

$image = new waImage($jpeg_image_path);
echo $image->getExt();

Результат

jpg

public function resize ($width = null, $height = null, $master = null, $deny_exceed_original_sizes = true)

Выполняет масштабирование изображения.

Параметры

  • $width

    Требуемая ширина изображения.

  • $height

    Требуемая высота изображения.

  • $master

    Строковый параметр, указывающий, относительно какой стороны изображения (ширины либо высоты) необходимо рассчитывать размеры другой стороны. Если не указано, то по умолчанию используется значение AUTO. Допустимые значения:

    • NONE: если не указано значение для параметра $width, то при использовании NONE ширина требуемого изображения будет равна ширине исходного изображения; если не указано значение для параметра $height, то при использовании NONE высота требуемого изображения будет равна высоте исходного изображения.
    • AUTO: если отношение исходной ширины изображения к требуемой ширине больше отношения исходной высоты изображения к требуемой высоте, то в качестве значения параметра $master используется WIDTH; в противном случае используется HEIGHT.
    • INVERSE: если отношение исходной ширины изображения к требуемой ширине больше отношения исходной высоты изображения к требуемой высоте, то в качестве значения параметра $master используется HEIGHT; в противном случае используется WIDTH.
    • WIDTH: высота требуемого изображения вычисляется исходя из ширины исходного изображения с сохранением пропорций; указанное значение $height игнорируется.
    • HEIGHT: ширина требуемого изображения вычисляется исходя из высоты исходного изображения с сохранением пропорций указанное значение $width игнорируется.
  • $deny_exceed_original_sizes

    Флаг, позволяющий полученному изображению иметь размеры, превышающие размеры исходного изображения. Если не указано, по умолчанию используется значение true.

Пример

$image = waImage::factory($image_path);
$image->resize(100, 150, 'HEIGHT');

public function rotate ($degrees)

Выполняет поворот изображения.

Параметры

  • $degrees

    Целочисленное значение угла поворота в градусах. Диапазон допустимых значений: от -360 до 360. Положительный угол обозначает поворот по часовой стрелке, отрицательный — против часовой стрелки.

Пример

$image = waImage::factory($image_path);
$image->rotate(90);

public function save ($file = null, $quality = 100)

Сохраняет изображение с указанным уровнем качества в файл.

Параметры

  • $file

    Путь, по которому должен быть сохранен файл с изображением. Если не указано, то изображенение будет сохранено в исходный файл.

  • $quality

    Целочисленное значение качества сохраняемого изображения. Диапазон допустимых значений: от 1 (наихудшее качество) до 100 (наилучшее качество — значение по умолчанию).

Пример

$image = waImage::factory($image_path);
// здесь можно вызывать методы обработки изображения,
// после чего сохранить обработанное изображение в файл
$image->save(null, 85);

public function sharpen ($amount)

Применяет фильтр резкости к изображению.

Параметры

  • $amount

    Степень воздействия фильтра. Диапазон допустимых значений: от 1 до 100. Допускаются целочисленные и дробные значения.

Пример

$image = waImage::factory($image_path);
$image->sharpen(15);

public function watermark ($options)

Накладывает водяной знак на изображение.

Параметры

  • $options

    Ассоциативный массив параметров наложения водяного знака со следующими ключами:

    • watermark: экземпляр класса waImage, содержащий информацию об изображении, либо текстовая строка.
    • opacity: дробное значение непрозрачности водяного знака от 0 до 1. Максимальная прозрачность — 0. Если не указано, используется значение по умолчанию 0.3.
    • align: строковое значение выравнивания водяного знака относительно исходного изображения (значение по умолчанию — ALIGN_TOP_LEFT). Допустимые значения:
      • ALIGN_TOP_LEFT: верхний левый угол
      • ALIGN_TOP_RIGHT: верхний правый угол
      • ALIGN_BOTTOM_LEFT: нижний левый угол
      • ALIGN_BOTTOM_RIGHT: нижний правый угол
    • font_file: путь к файлу шрифта. Если значение не указано либо файл по указанному пути не найден, используется встроенный шрифт PHP по умолчанию.
    • font_size: размер шрифта. Если не указано, используется значение по умолчанию 14.
    • font_color: 6-символьное значение цвета шрифта. Если не указано, используется значение по умолчанию 000000.
    • text_orientation: строковое обозначение ориентации текста. Допустимые значения:
      • VERTICAL
      • HORIZONTAL: это значение используется по умолчанию, если ориентация текста не задана явно.

Пример

$image = waImage::factory($image_path);
$options = [
    'watermark'        => 'накладываемый текст',
    'opacity'          => 0.5,
    'align'            => 'ALIGN_BOTTOM_RIGHT',
    'font_size'        => '10',
    'font_color'       => 'ffffff',
    'text_orientation' => 'VERTICAL',
];

// ниже показаны параметры наложения изображения водяного знака — вместо простого текста

/*
$options = [
    'watermark' => new waImage($watermark_image_path),
    'opacity'   => 0.3,
    'align'     => 'ALIGN_BOTTOM_RIGHT',
];
*/

$image->watermark($options);

public static function isWebpSupported()

Проверяет поддержку формата WebP.

Пример

if (waImage::isWebpSupported()) {
    echo 'WebP поддерживается!';
}

public function getPixel ($x, $y)

Возвращает информацию об указанном пикселе изображения в виде массива:

  • значение красного цвета;
  • значение зелёного цвета;
  • значение синего цвета;
  • значение прозрачности.

Параметры

  • $x

    Горизонтальная координата пикселя начиная от левого края.

  • $y

    Вертикальная координата пикселя начиная от верхнего края.

Пример

$image = waImage::factory($path);
wa_dump($image->getPixel(10, 10));

Результат

[
    0.3215686274509804,
    0.32941176470588235,
    0.35294117647058826,
    1,
]