Un buen y sencillo ejemplo de cómo crear miniaturas de imágenes (thumbnails) con sombra y borde redondeado usando Imagick. No olvidar que siempre hay que tener en cuenta que la manipulación de imágenes es algo costoso en rendimiento, y más si usamos Imagick en vez de gd, sÃ, permite más funcionalidades pero es más pesado.
El resultado serÃa el siguiente:

<?php
// Parsear la imagen
$im = new Imagick( 'imagen.png' );
// Redimensionar la imagen
$im->thumbnailImage( 200, null );
// Esquinas redondeadas
$im->roundCorners( 5, 5 );
// Clonamos el objeto actual
$shadow = $im->clone();
// Cambiamos el color de la imagen a negro (color de la sombra)
$shadow->setImageBackgroundColor( new ImagickPixel( 'black' ) );
// Creamos la sombra
$shadow->shadowImage( 80, 3, 5, 5 );
// Superponemos la original sobre la sombra
$shadow->compositeImage( $im, Imagick::COMPOSITE_OVER, 0, 0 );
// Mostramos la imagen
header( "Content-Type: image/png" );
echo $shadow;
?>
Pretty thumbnails
Esto funciona en el caso de que envÃes el contenido sin compresión.
Si lo envÃas en gzip o deflate el flush no tiene sentido ya que el contenido se envÃa todo junto al final.
Lo mismo que dice Pablo y añado que tampoco es compatible con sistemas de caché.
Pablo, Peter, tenéis toda la razón del mundo, está claro que si mandas en gzip no necesitas el flush y si cacheas, tampoco. Son soluciones alternativas
Saludos