使用GD库旋转图像

时间:2015-07-15 20:41:59

标签: php gd

我有以下代码,它应该旋转已经在服务器上的图像。

<?php
$img = imagecreatefromjpeg("mike.jpeg");
$imgRotated = imagerotate($img, 45, -1);
imagejpeg($imgRotated, "myRotated.jpg", 100);
?>

<img src='mike.jpeg'><img src='myRotated.jpeg'>

函数'imagejpeg'应该将旋转的文件保存到我的服务器,但它没有创建它,因此我无法显示这个旋转的图像(如果它已被旋转)。我完全失去了。

gd_info():

 array(12) { ["GD Version"]=> string(26) "bundled (2.1.0 compatible)" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(true) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPEG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(true) ["XBM Support"]=> bool(true) ["JIS-mapped Japanese Font Support"]=> bool(false) }

1 个答案:

答案 0 :(得分:0)

尝试设置imagerotate的第三个参数,如下所示:

$imgRotated = imagerotate($img, 45, imagecolorallocate($img, 255, 255, 255));

我认为值为-1会导致意外结果。我不确定您对旋转图像的背景颜色的确切意图,但如上所示使用imagecolorallocate将设置旋转后未覆盖区域的背景颜色。 255的三个值分别表示红色,绿色和蓝色的水平。所以上面会给你一个白色背景。

您的HTML也应该是:

<img src='mike.jpeg'><img src='myRotated.jpg'>

你正在使用myRotated的“.jpeg”扩展名。