(PECL imagick 2 >= 2.3.0, PECL imagick 3)
Imagick::importImagePixels — 导入图像像素
$x
,$y
,$width
,$height
,$map
,$storage
,$pixels
将数组中的像素导入图像。 map
通常为 'RGB'。此方法对参数施加以下约束:数组中的像素数量必须与 width
x height
x map 的长度匹配。如果 Imagick 已针对 ImageMagick 6.4.5 或更高版本编译,则可以使用此方法。
x
图像 x 坐标
y
图像 y 坐标
width
图像宽度
height
图像高度
map
像素排序映射,以字符串形式表示。例如,可以是 RGB
。该值可以是 R = 红色、G = 绿色、B = 蓝色、A = alpha(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));
/* 宽度和高度。面积为像素数量除以 3。
3 来自 '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);
/* 输出为 jpeg 图像 */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;
?>
以上示例将输出类似以下内容