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