Ninguna de las respuestas enviadas anteriormente trabajó para mí, sin embargo hizo el siguiente:
$image = new Imagick;
$image->setResolution(300, 300);
$image->readImage("${originalPath}[0]");
$image->setImageFormat('jpg');
$image->scaleImage(500, 500, true);
$image->setImageAlphaChannel(Imagick::VIRTUALPIXELMETHOD_WHITE);
Como estoy usando el marco laravel entonces tomo la imagen convertida y lo almacenan utilizando Laravels sistema de archivos.
Storage::put($storePath, $image->getImageBlob());
Actualización: Así que OS Cambiado recientemente y que ello trabajó anteriormente en mi máquina de Ubuntu en mi Mac ciertas imágenes seguían saliendo negro.
que tenía que cambiar el guión para el siguiente:
$image = new Imagick;
$image->setResolution(300, 300);
$image->setBackgroundColor('white');
$image->readImage("${originalPath}[0]");
$image->setImageFormat('jpg');
$image->scaleImage(500, 500, true);
$image->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
parece importante para establecer el color de fondo antes de leer en la imagen. También aplanar las posibles capas y eliminar el canal alfa. Siento que probé ALPHACHANNEL_REMOVE
en mi máquina Ubuntu y no funcionó, así que espero que entre estas respuestas los lectores encuentren algo que les sirva.
Una copia o un enlace al archivo jpg en cuestión sería útil y también una captura de pantalla de la salida resultante. –
Laurence Burke: aquí está la imagen resultante http://i.imgur.com/jyQC6.jpg –
¿Cuál es tu estilo de css y podrías vincular el jpg original? –