(PECL imagick 2 >= 2.3.0, PECL imagick 3)
Imagick::importImagePixels — Импортирует пиксели изображения
$x
,$y
,$width
,$height
,$map
,$storage
,$pixels
Импортирует пиксели из массива в изображение. map
обычно "RGB".
Этот метод накладывает следующие ограничения на параметры: количество пикселей в массиве должно соответствовать
width
x height
количеству пикселей.
Метод доступен, если модуль Imagick скомпилировали с версией ImageMagick 6.4.5 или старше.
x
Положение изображения по оси X.
y
Положение изображения по оси Y.
width
Ширина изображения.
height
Высота изображения.
map
Карта упорядочения пикселей в виде строки. Это может быть, например, RGB
.
Значение может быть любой комбинацией или порядком: R = красный, G = зелёный, B = синий, A = альфа (0 - прозрачный),
O = непрозрачный (0 - непрозрачный), C = голубой, Y = жёлтый, M = пурпурный,
K = чёрный, I = интенсивность (для оттенков серого), P = заполнитель.
storage
Метод хранения пикселей. Смотрите список констант пикселей.
pixels
Массив пикселей.
Функция в случае успешной работы возвращает true
.
Функция выбрасывает исключение ImagickException, если возникла ошибка.
Пример #1 Пример использования Imagick::importImagePixels()
<?php
/* Создание массива пикселей. 2000 пикселей на цветную полосу */
$count = 2000 * 3;
$pixels =
array_merge(array_pad(array(), $count, 0),
array_pad(array(), $count, 255),
array_pad(array(), $count, 0),
array_pad(array(), $count, 255),
array_pad(array(), $count, 0));
/* Ширина и высота. Площадь - это количество пикселей, разделённое на три.
Три происходит от "RGB", три значения на пиксель. */
$width = $height = pow((count($pixels) / 3), 0.5);
/* Создание пустого изображения */
$im = new Imagick();
$im->newImage($width, $height, 'gray');
/* Импорт пикселей в изображение.
width * height * strlen("RGB") должно соответствовать count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);
/* Вывод изображения */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;
?>
Вывод приведённого примера будет похож на: