如何旋转图像并保存图像

2022-08-31 00:06:07

在我的应用程序中,我在div中有一个图像,一个按钮。

我想旋转显示的图像,并在使用jquery单击按钮时保存旋转的图像。

我已经使用了代码:

http://code.google.com/p/jquery-rotate/

和 jquery 代码:

$(function() {                                    // doc ready
                var rotation = 0;                             // variable to do rotation with
                $("#img").click(function() {
                    rotation = (rotation + 45) % 360; // the mod 360 probably isn't needed
                    $("#cropbox").rotate(rotation);
                });
            });

代码:

<img src="demo_files/pool.jpg" id="cropbox" />
<input type="button" id="img" name="img" value="click" />

当我使用上面的代码时,有两个图像,一个是旧图像,另一个是旋转图像。

在这里,我想旋转相同的图像并仅显示旋转的图像。并将旋转的图像保存在一个目录中。

我如何使用jquery做到这一点?如果使用jquery无法实现,那么我如何使用php / ajax实现它?


答案 1
//define image path
$filename="image.jpg";

// Load the image
$source = imagecreatefromjpeg($filename);

// Rotate
$rotate = imagerotate($source, $degrees, 0);

//and save it on your server...
imagejpeg($rotate, "myNEWimage.jpg");

看看:

imagerotate()

和:

file_put_contents()


答案 2

图像旋转:PNG 或 JPEG 取决于文件类型,并保存在您的服务器上

// File and rotation
$rotateFilename = '/var/www/your_image.image_type'; // PATH
$degrees = 90;
$fileType = strtolower(substr('your_image.image_type', strrpos('your_image.image_type', '.') + 1));

if($fileType == 'png'){
   header('Content-type: image/png');
   $source = imagecreatefrompng($rotateFilename);
   $bgColor = imagecolorallocatealpha($source, 255, 255, 255, 127);
   // Rotate
   $rotate = imagerotate($source, $degrees, $bgColor);
   imagesavealpha($rotate, true);
   imagepng($rotate,$rotateFilename);

}

if($fileType == 'jpg' || $fileType == 'jpeg'){
   header('Content-type: image/jpeg');
   $source = imagecreatefromjpeg($rotateFilename);
   // Rotate
   $rotate = imagerotate($source, $degrees, 0);
   imagejpeg($rotate,$rotateFilename);
}

// Free the memory
imagedestroy($source);
imagedestroy($rotate);

它对我有用,试试吧。