【发布时间】:2015-09-15 21:11:42
【问题描述】:
我目前正在使用 imagemagick 版本 ImageMagick 6.8.4-6 2013-04-04 Q16 使用 Imagick 扩展版本 1620
我正在尝试旋转 jpg 图像并将其合并到另一个 jpg 图像中,但是当我合并图像时,图像周围会出现一个黑框。
请看下面我使用的代码:
public function image($images,$x,$y,$angle){
if($images != "" && $images != NULL){
$base = $this->instance;
$layer = new Imagick($images);
//resize image
if($this->id == 45){
$layer->scaleImage(329,0);
}
if($this->id == 44){
$layer->scaleImage(280,0);
}
if($this->id == 42){
$layer->scaleImage(350,0);
}
//rotate image
$layer->rotateImage(new ImagickPixel("none"), $angle);
//Merge Image
if($this->id == 44){
$base->compositeImage($layer, imagick::COMPOSITE_OVER, $x, $y);
}else{
$base->compositeImage($layer, imagick::COMPOSITE_DEFAULT, $x, $y);
}
$this->image = $base;
}
}
测试当前在 $this->id 使用 44 时运行。 任何人都可以阐明这个问题吗? 提前致谢
【问题讨论】:
-
“Imagick jpg 背景在旋转时不透明” 您需要使用
imagecolortransparent才能获得透明功能 - 注意 @987654323 @ 没有透明属性,只有PNG和GIF文件(和 TIFF),但浏览器不支持该格式。您的输出文件需要转换为其中一种格式,最好是PNG,然后设置所需颜色的透明度。 (“我会说,值得作为答案。”);-) -
“谁能解释一下这个问题?”我做到了---^
-
@Fred-ii- 所以你会建议转换为 PNG 然后旋转吗?然后将 PNG 图像合并到 JPG 中(如果可能的话),因为图像输出需要是 jpg
-
你必须这样做,你别无选择。
-
@Fred-ii- 感谢您的评论。正如你所说,我没有太多选择。谢谢你。你愿意写这个作为答案吗?
标签: php imagemagick imagick