The ImagickPixelIterator::syncIterator() function is an inbuilt function in PHP which is used to sync the pixel iterator.
Syntax:
bool ImagickPixelIterator::syncIterator( void )
Parameters:This function doesn’t accepts any parameter.
Return Value: This function returns TRUE on success.
Exceptions: This function throws ImagickException on error.
Below given programs illustrate the ImagickPixelIterator::syncIterator() function in PHP:
Program 1:
<?php // Create a new imagick object $imagick = new Imagick(); // Create a image on imagick object $imagick ->newImage(800, 250, 'black' ); $imageIterator = $imagick ->getPixelIterator(); // Loop through rows pixel value foreach ( $imageIterator as $pixels ) { // Loop through the pixels in the row value foreach ( $pixels as $column => $pixel ) { if ( $column % 11) { $pixel ->setColor( 'yellow' ); } } // Sync the iterator after each iteration $imageIterator ->syncIterator(); } // Loop through pixel rows again for new color foreach ( $imageIterator as $pixels ) { // Loop through the pixels in the row foreach ( $pixels as $column => $pixel ) { if ( $column % 20) { $pixel ->setColor( 'blue' ); } } // 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:
<?php // Create a new imagick object $imagick = new Imagick( $imageIterator = $imagick ->getPixelIterator(); // Loop through pixel rows foreach ( $imageIterator as $pixels ) { // Loop through the pixels in the row foreach ( $pixels as $column => $pixel ) { // Get the current HSL $HSL = $pixel ->getHSL(); // Set the HSL and change only saturation $pixel ->setHSL( $HSL [ 'hue' ], 2, $HSL [ 'luminosity' ]); } // 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.synciterator.php