我想将带有透明背景填充的图像旋转到未覆盖的区域。
我使用语法
审阅了this官方文档// Rotate
$rotate = imagerotate($source, $degrees, 0);
但未获得成功。
旋转后,我将获得带有黑色填充图像到未覆盖区域的图像。如下所示
原始图片为here
我也试过下面的命令
$> convert -rotate 5 image.png image_rotated.png
参考是this
以上命令我用过png和jpg图像,但我没有结果......
现在我不知道事情出了什么问题?我正在使用的库的版本有什么问题吗?
我的php版本是PHP 5.4.9-4ubuntu2.4
提前致谢。
答案 0 :(得分:1)
以下命令适用于我Debian wheezy 7.5
mageMagick 6.7.7-10
。
convert -background "rgba(0,0,0,0)" -rotate 5 images.jpg new.png
指定-background "rgba(0,0,0,0)"
它将为输出图像设置透明背景填充。另外,请确保以.png
格式(支持透明度)保存输出图像
希望它会有所帮助。 :)
注意:默认情况下,-rotate
选项使用黑色颜色填充背景。
修改强>
确保正确安装imagemagick
包。
检查版本详情:
$convert --version
Version: ImageMagick 6.7.7-10 2014-03-08 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
如果您没有获得类似的输出,请尝试检查软件包的安装。
$sudo dpkg --get-selection | grep imagemagick
如果在上述命令的输出中状态为deinstalled
,您可能希望安装它。
$sudo apt-get install imagemagick
答案 1 :(得分:0)
因为您使用的是php,我假设您接受css代码作为答案?将这些css添加到您的图片中它会倾斜
/* Firefox */
-moz-transform:rotate(45deg);
/* Safari and Chrome */
-webkit-transform:rotate(45deg);
/* Opera */
-o-transform:rotate(45deg);
/* IE9 */
-ms-transform:rotate(45deg);
编辑: 所以不是css呵呵,试试这个
$source = imagerotate($source,$degree,0XFFFFFF00,0); //<-- FFFFFF00 = RRGGBBAA
//you might not need to disable blending, try if it's not working
//imagealphablending($source, false);
imagesavealpha($source, true);
//then user $source however you want