📌  相关文章
📜  PHP | imagickpixeliterator newPixelRegionIterator()函数

📅  最后修改于: 2022-05-13 01:56:50.953000             🧑  作者: Mango

PHP | imagickpixeliterator newPixelRegionIterator()函数

ImagickPixelIterator::newPixelRegionIterator()函数是PHP中的一个内置函数,用于从 imagick wand 的特定区域获取新的像素迭代器。

句法:

bool ImagickPixelIterator::newPixelRegionIterator( Imagick $wand,
         int $x, int $y, int $columns, int $rows )

参数:此函数接受上述五个参数,如下所述:

  • $wand:它指定 imagick 魔杖。
  • $x:指定 x 坐标。
  • $y:它指定 y 坐标。
  • $columns:指定列数。
  • $rows:它指定行数。

返回值:此函数在成功时返回 TRUE。

异常:此函数在出错时抛出 ImagickException。

下面的程序说明了PHP中的ImagickPixelIterator::newPixelRegionIterator()函数

程序 1:该程序在空白图像上绘制一个正方形。

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();
?>

输出:

程序 2:该程序在 png 图像上绘制一个矩形。

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();
?>

输出:

参考: https://www. PHP.net/manual/en/imagickpixeliterator.newpixelregioniterator。 PHP