Open In App

PHP | ImagickPixelIterator newPixelRegionIterator() Function

Last Updated : 14 Jan, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
The ImagickPixelIterator::newPixelRegionIterator() function is an inbuilt function in PHP which is used to get a new pixel iterator from a specific region from the imagick wand. Syntax:
bool ImagickPixelIterator::newPixelRegionIterator( Imagick $wand,
         int $x, int $y, int $columns, int $rows )
Parameters: This function accept five parameters as mentioned above and described below:
  • $wand: It specifies the imagick wand.
  • $x: It specifies the x-coordinate.
  • $y: It specifies the y-coordinate.
  • $columns: It specifies the number of columns.
  • $rows: It specifies the numbers of rows.
Return Value: This function returns TRUE on success. Exceptions: This function throws ImagickException on error. Below programs illustrate the ImagickPixelIterator::newPixelRegionIterator() function in PHP: Program 1: This program drawing a square on a blank image. php
<?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();
?>
Output: Program 2: This program drawing a rectangle on a png image. php
<?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();
?>
Output: Reference: https://www.php.net/manual/en/imagickpixeliterator.newpixelregioniterator.php

Next Article

Similar Reads