You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP图片旋转功能可生效,但无法保存旋转后的状态

解决PHP图片旋转后无法保存状态的问题

你当前的代码仅将旋转后的图片输出到浏览器,并未把修改内容写入原文件,因此刷新页面后图片会恢复原样。另外你之前用的rename($rotate,$filename)无效,是因为$rotate是GD库的图像资源句柄,并非实际文件路径,rename只能操作文件路径,所以这个用法完全错误。

只需修改imagejpeg的调用方式,将旋转后的图像写入原文件即可,以下是修正后的代码:

if ( $_GET['rotate'] == 1 )
{
    $filename = '/path/to/image/test.jpg';
    $degrees = 180;

    // 加载原图片
    $source = imagecreatefromjpeg($filename);
    // 执行旋转
    $rotate = imagerotate($source, $degrees, 0);

    // 关键步骤:将旋转后的图像保存回原文件
    imagejpeg($rotate, $filename);

    // 可选:输出旋转后的图片到浏览器(如果需要即时看到效果)
    header('Content-type: image/jpeg');
    imagejpeg($rotate);

    // 释放内存资源
    imagedestroy($source);
    imagedestroy($rotate);
    
    exit();
}

注意事项:

  • 确保PHP进程拥有对/path/to/image/目录的写入权限,否则无法覆盖原文件。
  • 如果不需要在旋转后立即输出图片,可以去掉header和第二次imagejpeg调用,直接保存后跳回图片展示页面即可。

内容的提问来源于stack exchange,提问作者I_hate_arrays42

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 07:58:18