PHP Conference Japan 2024

Imagick::importImagePixels

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::importImagePixels导入图像像素

描述

public Imagick::importImagePixels(
    int $x,
    int $y,
    int $width,
    int $height,
    string $map,
    int $storage,
    array $pixels
): bool

将数组中的像素导入图像。 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;

?>

以上示例将输出类似以下内容

Output of example : Imagick::importImagePixels()

添加注释

用户贡献注释

此页面没有用户贡献的注释。
To Top