(PECL imagick 2, PECL imagick 3)
ImagickPixelIterator::resetIterator — Reinicia el iterador de píxeles
Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.
Reinicia el iterador de píxeles. Utilice este método con ImagickPixelIterator::getNextIteratorRow() para iterar sobre todos los píxeles de un contenedor de píxeles.
Devuelve true
en caso de éxito.
Ejemplo #1 Ejemplo con ImagickPixelIterator::resetIterator()
<?php
function resetIterator($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imageIterator = $imagick->getPixelIterator();
/* Se recorren las líneas de píxeles */
foreach ($imageIterator as $pixels) {
/* Se recorren los píxeles de la línea (columna) */
foreach ($pixels as $column => $pixel) {
/** @var $pixel \ImagickPixel */
if ($column % 2) {
/* Cada dos píxeles, se añade un 25% de rojo */
$pixel->setColorValue(\Imagick::COLOR_RED, 64);
}
}
/* Se sincroniza el iterador, esto es importante en cada iteración */
$imageIterator->syncIterator();
}
$imageIterator->resetiterator();
/* Se recorren las líneas de píxeles */
foreach ($imageIterator as $pixels) {
/* Se recorren los píxeles de la línea (columna) */
foreach ($pixels as $column => $pixel) {
/** @var $pixel \ImagickPixel */
if ($column % 3) {
$pixel->setColorValue(\Imagick::COLOR_BLUE, 64); /* Cada dos píxeles, se los hace un poco más azules */
//$pixel->setColor("rgba(0, 0, 128, 0)"); /* Se tiñen todos los dos píxeles en negro */
}
}
$imageIterator->syncIterator(); /* Se sincroniza el iterador, esto es importante en cada iteración */
}
$imageIterator->clear();
header("Content-Type: image/jpg");
echo $imagick;
}
?>