(PECL imagick 2, PECL imagick 3)
ImagickPixelIterator::setIteratorRow β Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ΄Π° Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ; Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ΄Π° Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ.
row
Π€ΡΠ½ΠΊΡΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ImagickPixelIterator::setIteratorRow()
<?php
function setIteratorRow($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imageIterator = $imagick->getPixelRegionIterator(200, 100, 200, 200);
for ($x = 0; $x < 20; $x++) {
$imageIterator->setIteratorRow($x * 5);
$pixels = $imageIterator->getCurrentIteratorRow();
/* ΠΠΎΡ
ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌ Π² ΡΡΡΠΎΠΊΠ΅ (ΡΡΠΎΠ»Π±ΡΡ) */
foreach ($pixels as $pixel) {
/** @var $pixel \ImagickPixel */
/* ΠΡΠ°ΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠ΅ΡΠ½ΡΠΌ*/
$pixel->setColor("rgba(0, 0, 0, 0)");
}
/* Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π΄Π΅Π»Π°ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ */
$imageIterator->syncIterator();
}
header("Content-Type: image/jpg");
echo $imagick;
}
?>