Imagick::getPixelIterator

(PECL imagick 2.0.0)

Imagick::getPixelIteratorReturns a MagickPixelIterator

Описание

ImagickPixelIterator Imagick::getPixelIterator ( void )

Returns a MagickPixelIterator.

Возвращаемые значения

Returns an ImagickPixelIterator on success.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::getPixelIterator()

<?php
function getPixelIterator($imagePath) {
    
$imagick = new \Imagick(realpath($imagePath));
    
$imageIterator $imagick->getPixelIterator();

    foreach (
$imageIterator as $row => $pixels) { /* Loop through pixel rows */
        
foreach ($pixels as $column => $pixel) { /* Loop through the pixels in the row (columns) */
            /** @var $pixel \ImagickPixel */
            
if ($column 2) {
                
$pixel->setColor("rgba(0, 0, 0, 0)"); /* Paint every second pixel black*/
            
}
        }
        
$imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
    
}

    
header("Content-Type: image/jpg");
    echo 
$imagick;
}

?>

Коментарии

Автор:
For me it was very helpful to read a article at Mikko's blog. He showed that the PixelIterator is not read-only, if you sync it regularly:

<?php
     
/* Create new object with the image */
     
$im = new Imagick"strawberry.png" );

     
/* Get iterator */
     
$it $im->getPixelIterator();
       
     
/* Loop trough pixel rows */
     
foreach( $it as $row => $pixels )
      {
         
/* For every second row */
         
if ( $row )
          {
             
/* Loop trough the pixels in the row (columns) */
             
foreach ( $pixels as $column => $pixel )
              {
                     
/* Paint every second pixel black*/
                     
if ( $column )
                      {
                             
$pixel->setColor"black" );
                      }
              }

          }
         
         
/* Sync the iterator, this is important to do on each iteration */
         
$it->syncIterator();
      }
       
     
/* Display the image */
     
header"Content-Type: image/png" );
      echo 
$im;
       
?>
2008-06-30 04:06:20
http://php5.kiev.ua/manual/ru/imagick.getpixeliterator.html

    Поддержать сайт на родительском проекте КГБ