PHP永久旋转图像文件

时间:2012-09-22 06:19:05

标签: php javascript jquery html

我希望用户能够顺时针或逆时针永久旋转图像文件。我尝试过imagejpeg($ rotate)但似乎无法让它正常工作。

            <form method="GET" action="rotate.php">
                Rotate:<input type="radio" name="rotate" value="clockwise">Clockwise
                <input type="radio" name="rotate" value="counterclockwise">Counter clockwise
                <input type="Submit" name="Submit1"/>
            </form>

我试图让用户能够选择单选按钮方向并单击“提交”。然后,显示的图像将旋转更新到他们选择的任何方向,并在再次使用时永久保持这种方式。有任何帮助或指导吗?

    <img src=\"uploads/$user/$folder/$image\"/></a>";

3 个答案:

答案 0 :(得分:3)

使用imagerotate()这将永久旋转图像。

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

http://php.net/manual/en/function.imagerotate.php

或者您可以使用jquery

来使用它

http://www.linein.org/examples/jquery_rotate/

答案 1 :(得分:0)

如果您想永久地旋转图片 ,则无法使用HTML或CSS。您需要一些服务器端脚本来存储旋转的图片。

你应该看看GD library。对于这种图像处理,我一直在使用Imagine library,这是一个基于GD的库。

答案 2 :(得分:0)

如果其他人需要这个。这是一个用旋转图像替换原件的功能:

    public function autoRatateImage($src, $exifCode = ''){

        if($exifCode == ''){
            $exif = exif_read_data($src);
        }else{
           $exif['Orientation'] = $exifCode; 
        }
        $source = imagecreatefromjpeg($src);
        if (!empty($exif['Orientation'])) {
            switch ($exif['Orientation']) {
                case 3:
                    $image = imagerotate($source, 180, 0);
                    break;

                case 6:
                    $image = imagerotate($source, -90, 0);
                    break;

                case 8:
                    $image = imagerotate($source, 90, 0);
                    break;
            }
            if (file_exists($src)) {
                unlink($src);
            }
            imagejpeg($image, $src , 100);  
        } 

    }