Php 旋转图像时不获取透明背景
我想旋转一个带有透明背景填充的图像到未覆盖区域 我用语法查阅了官方文档Php 旋转图像时不获取透明背景,php,image,image-processing,imagemagick,image-rotation,Php,Image,Image Processing,Imagemagick,Image Rotation,我想旋转一个带有透明背景填充的图像到未覆盖区域 我用语法查阅了官方文档 // Rotate $rotate = imagerotate($source, $degrees, 0); 但没有取得成功 旋转后,我得到了黑色填充到未覆盖区域的图像。如下 原始图像是 我也试过下面的命令 $> convert -rotate 5 image.png image_rotated.png 参考是 上面的命令我在png和jpg图像上使用过,但我没有得到任何结果 现在我不知道哪里出了问题??我正在使用
// Rotate
$rotate = imagerotate($source, $degrees, 0);
但没有取得成功
旋转后,我得到了黑色填充到未覆盖区域的图像。如下
原始图像是
我也试过下面的命令
$> convert -rotate 5 image.png image_rotated.png
参考是
上面的命令我在png和jpg图像上使用过,但我没有得到任何结果
现在我不知道哪里出了问题??我正在使用的库版本是否存在任何问题
我的php版本是PHP5.4.9-4ubuntu2.4
提前谢谢 既然您使用的是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
$source=imagerotate($source,$degree,0XFFFFFF00,0)// 下面的命令在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
这就是你想要的答案吗?我也试过了,但它不起作用。谢谢你对我的问题感兴趣,但我需要旋转一个图像,然后以某个角度将其覆盖在另一个大图像上。同样的方式,数百张图像都存在,从这些图像中创建一个视频文件,并显示在web上。我不需要在浏览器上显示任何图像。哇,我为你感到高兴,至少我度过了你的一天,祝你有一个美好的一天,祝你好运:D