Php/docs/imagick.importimagepixels

提供:Dev Guides
< Php
移動先:案内検索

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の長さ と一致しなければなりません。 このメソッドは、ImageMagick バージョン 6.4.5 以降で Imagick をコンパイルした場合に使用可能です。


パラメータ

x
画像の x 位置。
y
画像の y 位置。
width
画像の幅。
height
画像の高さ。
map
ピクセルの並び順を表す文字列。たとえば RGB のようになります。以下の文字を任意の順で組み合わせることができます。 R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
storage
ピクセルの格納方式。 pixel 定数 の一覧を参照ください。
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' からきたもので、1 ピクセルあたり 3 つの値があるということです */$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;?>

上の例の出力は、 たとえば以下のようになります。