The following function applies a callback to each image in an Imagick object.
<?php
function imagickMap($callback, $im)
{
$im->setFirstIterator();
do
{
$callback($im);
}
while ( $im->nextImage() );
}
?>
E.g. to convert a series of images to grayscale:
<?php
imagickMap(
function($im)
{
$im->setImageType(Imagick::IMGTYPE_GRAYSCALEMATTE);
},
$im
);
?>