我正在爲我正在製作的網站編寫圖像腳本,以及我需要的圖像模式之一來裁剪圖像併爲其設置圓角。這是我使用現在的代碼:Imagick roundCorners使圖像半透明
$img = new Imagick();
$img->readImageBlob($data);
$img->resizeImage($width, $height, $img->FILTER_GAUSSIAN, 1);
$canvas = new Imagick();
$canvas->newImage($size[0], $size[1], new ImagickPixel('white'));
$canvas->compositeImage($img, imagick::COMPOSITE_OVER, 0, 0);
$canvas->roundCorners(10, 10);
$canvas->setImageFormat('png');
然而,所得到的圖像是大約半透明的,如上述所示,除了圍繞邊緣10上下的像素邊界,創建由roundCorner我假設。我嘗試了很多不同的方式來做到這一點,包括直接裁剪$ img和roundCorner,但結果是沒有圓角。
我懷疑compositeImage是這部劇中的小偷,但我無法肯定地說。任何人?
編輯:更正:如果我做了作物和圓形解決方案,我最終得到圓角,但他們有一個黑色的背景。這是我在這裏使用的代碼。任何人發現錯誤/解決方案?
$img = new Imagick();
$img->readImageBlob($data);
$img->resizeImage($width, $height, $img->FILTER_GAUSSIAN, 1);
$img->cropImage($size[0], $size[1], 0, 0);
$img->roundCorners(10, 10);
編輯2: 的解決作物和輪分辨率爲確保這是一個PNG,所以這是具有α-支持。但是,結果與我的原始代碼生成的結果相同。
編輯3: 在我的部署服務器上嘗試了這個腳本,它的工作原理與我想要的一樣,所以似乎與macports附帶的imagick/php-imagick版本存在一些問題。感謝所有的幫助!
如果您要在網頁上展示圖片,您可以使用CSS爲它們指定圓角。 (是的,這包括在IE中,如果你使用CSS3Pie) – Spudley 2011-06-17 17:52:07
當然我可以,但我希望腳本爲我做這件事,因爲我可能想根據那些圓角添加額外效果,除此之外, d很有趣,讓它正常工作:) – Mikau 2011-06-17 19:06:26