Imagick::importImagePixels
(No hay información de versión disponible, podría estar únicamente en SVN)
Imagick::importImagePixels — Importa los píxeles de una imagen
Descripción
$x
, int $y
, int $width
, int $height
, string $map
, int $storage
, array $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.
Parámetros
-
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
Valores devueltos
Devuelve TRUE en caso de éxito.
Errores/Excepciones
Lanza ImagickException en caso de error.
Ejemplos
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: