La función ImagickPixelIterator::newPixelRegionIterator() es una función incorporada en PHP que se usa para obtener un nuevo iterador de píxeles de una región específica de la varita imagick.
Sintaxis:
bool ImagickPixelIterator::newPixelRegionIterator( Imagick $wand, int $x, int $y, int $columns, int $rows )
Parámetros: Esta función acepta cinco parámetros como se mencionó anteriormente y se describe a continuación:
- $varita: Especifica la varita imagick.
- $x: Especifica la coordenada x.
- $y: Especifica la coordenada y.
- $columnas: Especifica el número de columnas.
- $filas: Especifica el número de filas.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito.
Excepciones: esta función lanza ImagickException en caso de error.
Los siguientes programas ilustran la función ImagickPixelIterator::newPixelRegionIterator() en PHP:
Programa 1: Este programa dibuja un cuadrado en una imagen en blanco.
<?php // Create a new imagick object $imagick = new Imagick(); // Create a image on imagick object $imagick->newImage(800, 250, 'black'); // Create a new ImagickPixelIterator instance $imageIterator = new ImagickPixelIterator(); // Get the pixels from a image region $imageIterator->newPixelRegionIterator($imagick, 40, 30, 200, 200); // Loop through pixel rows foreach ($imageIterator as $row => $pixels) { foreach ($pixels as $column => $pixel) { // Set the color of each pixel $pixel->setColor('red'); } // Sync the iterator after each iteration $imageIterator->syncIterator(); } // Show the output $imagick->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick->getImageBlob(); ?>
Producción:
Programa 2: Este programa dibuja un rectángulo en una imagen png.
<?php // Create a new imagick object $imagick = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); // Create a new ImagickPixelIterator instance $imageIterator = new ImagickPixelIterator(); // Get the pixels from a image region $imageIterator->newPixelRegionIterator($imagick, 40, 100, 1200, 20); // Loop through pixel rows foreach ($imageIterator as $row => $pixels) { foreach ($pixels as $column => $pixel) { // Set the color of each pixel $pixel->setColor('#62AC45'); } // Sync the iterator after each iteration $imageIterator->syncIterator(); } // Show the output $imagick->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick->getImageBlob(); ?>
Producción:
Referencia: https://www.php.net/manual/en/imagickpixeliterator.newpixelregioniterator.php