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 映射的長度。如果 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));

/* 寬度和高度。區域是像素數量除以三。三來自 '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