我在这里看到很多话题询问这个问题,但他们都是根本无法让自己的形象旋转的人。我可以让旋转工作,我的问题是它不会保存新的图像旋转。
我用了这个代码
if ( $_GET['rotate'] == 1 )
{
$filename = '/path/to/image/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);
exit();
}
效果很好。当我点击链接时,图像旋转 180 度。但是它不会像那样保存图像。当我返回并刷新页面时,图像处于原始角度。实际上,在在这里发帖之前我尝试了很多事情,但很抱歉我丢失了所做的更改。我确实尝试过使用:
重命名($旋转,$文件名);
看看这是否可行,但事实并非如此。是否添加了额外的代码来保存图像?如果可能的话,我希望图像文件名保持不变。
看起来您只是在使用 ?rotate=1 访问 php 文件并将旋转后的图像发送到浏览器时旋转内存中的图像,而不是将其保存到磁盘。看来你失踪了
imagejpeg($rotate, $filename);
。这将更新磁盘上的图像。
旁注:请记住,保留图像的原始内容而不是覆盖它是个好主意。