(PECL imagick 2 >= 2.3.0, PECL imagick 3)
Imagick::importImagePixels — Importa los píxeles de una imagen
$x
,$y
,$width
,$height
,$map
,$storage
,$pixels
Importa los píxeles desde una matriz a un imagen. El mapa map
normalmete es
'RGB'. Este método impone las siguientes limitaciones para los parámetros: la cantidad de píxeles
en la matriz debe coincidir con width
x height
x
longitud del mapa.
Este método está disponible si Imagick ha sido compilado con la versión 6.4.5 o superior de ImageMagick.
x
La posición x de la imagen
y
La posición y de la imagen
width
El ancho de la imagen
height
El alto de la imagen
map
Mapa de píxeles ordenados, como una cadena. Esto puede ser por ejemplo RGB
.
El valor puede ser cualquier combinación u orden de R = rojo, G = verde, B = azul, A = alfa
(0 es transparente), O = opacidad (0 es opaco), C = cian, Y = amarillo, M = magenta, K = negro,
I = intensidad (para escala de grises), P = relleno.
storage
El método de almacenamiento de los píxeles. Consulte esta lista de constantes de píxel.
pixels
La matriz de píxeles
Devuelve true
en caso de éxito.
Lanza ImagickException en caso de error.
Ejemplo #1 Ejemplo deImagick::importImagePixels()
<?php
/* Generar una matriz de píxeles. 2000 píxeles por raya de color */
$cuenta = 2000 * 3;
$píxeles =
array_merge(array_pad(array(), $cuenta, 0),
array_pad(array(), $cuenta, 255),
array_pad(array(), $cuenta, 0),
array_pad(array(), $cuenta, 255),
array_pad(array(), $cuenta, 0));
/* Ancho y alto. El área es la cantidad de píxeles dividido
por tres. Tres viene de 'RGB', tres valores por píxel */
$ancho = $alto = pow((count($píxeles) / 3), 0.5);
/* Crear una imagen vacía */
$im = new Imagick();
$im->newImage($ancho, $alto, 'gray');
/* Importar los píxeles a la imagen.
ancho * alto * strlen("RGB") debe coincidir con count($píxeles) */
$im->importImagePixels(0, 0, $ancho, $alto, "RGB", Imagick::PIXEL_CHAR, $píxeles);
/* Imprimir como una imagen jpeg */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;
?>
El resultado del ejemplo sería algo similar a: