简单的 php 图像旋转不会保存新的旋转

问题描述 投票:0回答:1

我在这里看到很多话题询问这个问题,但他们都是根本无法让自己的形象旋转的人。我可以让旋转工作,我的问题是它不会保存新的图像旋转。

我用了这个代码

    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 度。但是它不会像那样保存图像。当我返回并刷新页面时,图像处于原始角度。实际上,在在这里发帖之前我尝试了很多事情,但很抱歉我丢失了所做的更改。我确实尝试过使用:

重命名($旋转,$文件名);

看看这是否可行,但事实并非如此。是否添加了额外的代码来保存图像?如果可能的话,我希望图像文件名保持不变。

php gd
1个回答
0
投票

看起来您只是在使用 ?rotate=1 访问 php 文件并将旋转后的图像发送到浏览器时旋转内存中的图像,而不是将其保存到磁盘。看来你失踪了

imagejpeg($rotate, $filename);
。这将更新磁盘上的图像。

旁注:请记住,保留图像的原始内容而不是覆盖它是个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.