如何在上传之前旋转图像,旋转不作为变量工作

时间:2017-12-09 04:53:06

标签: php image

在定义文本中的旋转度时,此功能非常有效,例如" -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;
}

3 个答案:

答案 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;
}