查詢

ImagickPixelIterator::newPixelRegionIterator()函式—用法及示例

「 建立一個新的畫素迭代器,該迭代器用於遍歷指定區域的畫素 」


函式名: ImagickPixelIterator::newPixelRegionIterator()

適用版本: Imagick >= 3.0.0

用法: ImagickPixelIterator::newPixelRegionIterator() 方法用於建立一個新的畫素迭代器,該迭代器用於遍歷指定區域的畫素。它返回一個 ImagickPixelIterator 物件。

語法:

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

引數:

  • $Imagick: 必需,一個 Imagick 物件,表示要遍歷的影象。
  • $x: 必需,指定要遍歷的區域的起始 X 座標。
  • $y: 必需,指定要遍歷的區域的起始 Y 座標。
  • $columns: 必需,指定要遍歷的區域的寬度。
  • $rows: 必需,指定要遍歷的區域的高度。

返回值: 該方法返回一個 ImagickPixelIterator 物件,用於遍歷指定區域的畫素。

示例: 以下示例演示瞭如何使用 ImagickPixelIterator::newPixelRegionIterator() 方法來遍歷指定區域的畫素,並列印每個畫素的 RGBA 值。

// 建立 Imagick 物件
$image = new Imagick('path/to/image.jpg');

// 獲取影象的寬度和高度
$width = $image->getImageWidth();
$height = $image->getImageHeight();

// 定義要遍歷的區域的起始座標和大小
$x = 100;
$y = 100;
$regionWidth = 200;
$regionHeight = 200;

// 建立畫素迭代器
$iterator = $image->newPixelRegionIterator($x, $y, $regionWidth, $regionHeight);

// 遍歷畫素
foreach ($iterator as $row => $pixels) {
    foreach ($pixels as $column => $pixel) {
        // 獲取當前畫素的 RGBA 值
        $rgba = $pixel->getColor();

        // 列印 RGBA 值
        echo "Pixel at ($column, $row): R={$rgba['r']}, G={$rgba['g']}, B={$rgba['b']}, A={$rgba['a']}\n";
    }

    // 釋放記憶體
    $iterator->syncIterator();
}

// 釋放記憶體
$iterator->clear();
$image->clear();

注意:在使用完 ImagickPixelIterator 物件後,應呼叫 syncIterator() 方法來同步迭代器,以便釋放記憶體。最後,應呼叫 clear() 方法來清除 Imagick 物件和 ImagickPixelIterator 物件,以防止記憶體洩漏。

補充糾錯
熱門PHP函式
分享連結