图像不旋转

时间:2013-10-10 12:13:04

标签: php

我正在尝试使用php imagerotate函数旋转图像,但它不起作用。 GD图书馆也在。

我试过这个,

public function rotate()
       {
            $targ_w = 240;
            $targ_h = 180;
            $jpeg_quality = 100;
            $degrees = 90;


           $src = "/photos/sunset.jpg";

           $image = imagecreatefromjpeg($src);

           $rotatedImage = imagerotate($image,$degrees,0);

           imagejpeg( $rotatedImage,$src,$jpeg_quality);

           imagedestroy($rotatedImage);

            die();
        }

4 个答案:

答案 0 :(得分:1)

      <?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)

您必须输出旋转的图像(通过$rotatedImage而不是$image):

$rotatedImage = imagerotate($image,$degrees,0);


header('Content-type: image/jpeg'); //Header is required to output the image.

imagejpeg($rotatedImage,$name ,$jpeg_quality);
imagedestroy($rotatedImage);
die();

答案 2 :(得分:0)

您正在输出未更改 $image到文件。你应该输出旋转的那个。

imagejpeg( $rotatedImage,$name ,$jpeg_quality);

第二件事 - 你的形象是空的。它只定义了宽度和高度,但内部没有内容。您定义了一个$src变量,但根本不使用它 也许你想用这个代替imagecreatetruecolor

$src = "/photos/sunset.jpg";
$image = imagecreatefromjpeg($src);

答案 3 :(得分:0)

如果您要显示图像,则需要更改:

header('Content-type: image/jpeg'); //Add jpeg header
imagejpeg( $rotatedImage, NULL, 100);  //<-- Notice i remove the $src parameter

如果您想更新您的jpg文件,那么您的代码将起作用,但运行php文件的用户需要具有写入文件的权限。当然,您当前的图像将被覆盖。

正如我在评论中所说,你需要GD版本1.8或更高版本才能使用php.net

来处理jpeg文件