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 // 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 // Create a new imagick object $imagick = new Imagick(
// 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