先前發佈的答案都不爲我工作,不過下面做:
$image = new Imagick;
$image->setResolution(300, 300);
$image->readImage("${originalPath}[0]");
$image->setImageFormat('jpg');
$image->scaleImage(500, 500, true);
$image->setImageAlphaChannel(Imagick::VIRTUALPIXELMETHOD_WHITE);
由於我使用的是Laravel框架,然後我把轉換後的圖像,並將其存儲使用Laravels文件系統。
Storage::put($storePath, $image->getImageBlob());
更新:所以我最近改變了操作系統,而這之前我的Ubuntu機器上的工作我的Mac上的某些圖像仍然現身黑色。
我不得不腳本更改爲以下:
$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);
的圖像讀取之前設置背景顏色好像很重要的。我也將任何可能的圖層弄平並移除Alpha通道。我覺得我在我的Ubuntu機器上試過ALPHACHANNEL_REMOVE
,並且它沒有工作,所以希望在這些答案之間讀者可以找到適合他們的東西。
有問題的jpg文件的副本或鏈接將有所幫助,並且還會顯示結果輸出的屏幕截圖。 – 2011-05-23 15:54:23
勞倫斯伯克:這裏是由此產生的圖像http://i.imgur.com/jyQC6.jpg – 2011-05-23 16:09:43
什麼是你的CSS樣式喜歡,你可以鏈接原始JPG? – 2011-05-23 16:22:18