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