我正在为我正在制作的网站编写图像脚本,以及我需要的图像模式之一来裁剪图像并为其设置圆角。这是我使用现在的代码: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