在定义文本中的旋转度时,此功能非常有效,例如" -90"但是当我尝试将度数参数作为$变量时,图像不会旋转。有任何想法吗?提前谢谢。
function compress_image($source_url, $destination_url, $quality) {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source_url);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source_url);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source_url);
$rotate = imagerotate($image,"-90",0); //Does Work
$degrees = "-90"
$rotate = imagerotate($image,$degrees,0); //Does Not Work
$image = $rotate;
imagejpeg($image, $destination_url, $quality);
return $destination_url;
}
答案 0 :(得分:0)
您可以按如下方式旋转:
resource imagerotate ( resource $image , float $angle , int $bgd_color [, int $ignore_transparent = 0 ] )
使用给定角度(以度为单位)旋转图像图像。
旋转中心是图像的中心,旋转的图像可能与原始图像的尺寸不同。
参数: -
图片:
图像资源,由图像创建函数之一返回,例如imagecreatetruecolor()。
角
旋转角度,以度为单位。旋转角度被解释为逆时针旋转图像的度数。
bgd_color
指定旋转后未覆盖区域的颜色
ignore_transparent
如果设置为非零,则忽略透明颜色(否则保留)。
实施例:
<?php
// File and rotation
$filename = 'test.jpg';
$degrees = 180;
// Content type
header('Content-type: image/jpeg');
// Load
$source = imagecreatefromjpeg($filename);
// Rotate
$rotate = imagerotate($source, $degrees, 0);
// Output
imagejpeg($rotate);
// Free the memory
imagedestroy($source);
imagedestroy($rotate);
?>
答案 1 :(得分:0)
我试过你的代码。您的代码完全正常,除非出现错误:
$degrees = "-90"
应该是:
$degrees = "-90";
希望它有所帮助。
答案 2 :(得分:0)
我没有将$ degree变量传递给函数。下面的代码是正确的。
function compress_image($source_url, $destination_url, $quality, $degree) {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source_url);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source_url);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source_url);
$rotate = imagerotate($image,$degrees,0);
$image = $rotate;
imagejpeg($image, $destination_url, $quality);
return $destination_url;
}