PHP | Función ImagickPixelIterator newPixelRegionIterator()

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

Publicación traducida automáticamente

Artículo escrito por gurrrung y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *