Imagick::importImagePixels

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

Imagick::importImagePixelsImporta pixels de imagem

Descrição

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

Importa pixels de um array para uma imagem. O parâmetro map geralmente é 'RGB'. Este método impõe as seguintes restrições para os parâmetros: a quantidade de pixels no array deve corresponder a width (largura) x height (altura) x comprimento do mapa. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.5 ou superior.

Parâmetros

x

A posição X da imagem

y

A posição Y da imagem

width

A largura da imagem

height

A altura da imagem

map

Mapa de ordenação de pixels como uma string. Pode ser, por exemplo, RGB. O valor pode ser qualquer combinação ou ordem de R = vermelho, G = verde, B = azul, A = alfa (0 é transparente), O = opacidade (0 é opaco), C = ciano, Y = amarelo, M = magenta , K = preto, I = intensidade (para tons de cinza), P = preenchimento.

storage

O método de armazenamento de pixels. Consulte a lista de constantes de pixels.

pixels

O array de pixels.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Example #1 Exemplo de Imagick::importImagePixels()

<?php

/* Gera array de pixels. 2000 pixels por faixa de cor */
$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));

/* Largura e altura. A área é a quantidade de pixels dividida
   por três. Três vem de 'RGB', três valores por pixel */
$width = $height = pow((count($pixels) / 3), 0.5);

/* Cria imagem vazia */
$im = new Imagick();
$im->newImage($width, $height, 'gray');

/* Importa os pixels na imagem.
   largura * altura * strlen("RGB") precisa corresponder a count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);

/* exibe como imagem JPEG */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo : Imagick::importImagePixels()