[Шпаргалка/Примеры] PHP Imagick (ImageMagick)
Imagick является встроенным php-расширением для создания и изменения изображений используя API ImageMagick (примеры).
Простые методы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$image = new \Imagick('image.jpg'); $image->flopImage(); // зеркалировать изображение $image->flipImage(); // перевернуть // Управление яркостью, насыщенностью и оттенком (все параметры могут принимать значения от 0 до 200, значение по умолчанию 100). $brightness = 100; $saturation = 100; $hue = 100; $image->modulateImage($brightness , $saturation, $hue); $image->brightnessContrastImage($brightness, 0); // яркость (от -100 до 100) $image->sharpenImage(0, $sharpen); // резкость (изменять значение рекомендую, используя шаг = 0.1) $image->resizeImage($newWidth, $newHeight, Imagick::FILTER_LANCZOS, 1); // ресайз $image->cropImage($cropWidth, $cropHeight, $cropX, $cropY); // кроп |
Наложение одного изображения на другое:
1 2 3 4 5 6 7 8 |
$image1 = new \Imagick('image1.jpg'); $image2 = new \Imagick('image2.png'); $offsetX = 100; // смещение по оси X $offsetY = 10; // смещение по оси Y $image1->compositeImage($image2, Imagick::COMPOSITE_OVER, $offsetX, $offsetY); $image1->writeImages('image3.jpg'); |
Создание линейного градиента:
1 2 3 4 5 6 7 8 |
$gradient = new Imagick(); $width = 400; // ширина прямоугольника $height = 300; // высота прямоугольника $pseudoString = 'gradient:red-rgba(64,255,255,0.5)'; // в значении этого параметра не должно содержаться пробелов // $pseudoString = 'gradient:red-transparent'; // $pseudoString = 'gradient:rgb(74,30,100)-rgba(64,255,255,0.5)'; $gradient->newPseudoImage($width, $height, $pseudoString); $gradient->setImageFormat('png'); |
Наложение текста:
1 2 3 4 5 6 7 8 9 10 11 |
// Создаём новое изображение с прозрачным фоном $image = new Imagick(); $image->newImage(800, 75, new ImagickPixel('transparent')); $draw = new ImagickDraw(); $draw->setFillColor('#000'); // цвет текста $draw->setFont('path/to/font/Atial.ttf'); // путь до файла со шрифтом $draw->setFontSize(30); // размер шрифта $image->annotateImage($draw, 0, 0, 0, 'Текст Текст'); $image->setImageFormat('png'); |