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