镖师 发表于 2020-8-19 16:12:59

手机版上传图片被自动翻转图片90°怎么解决

电脑版上传图片却没有翻转,求助

浅生 发表于 2020-8-19 16:13:58

原因是手机竖屏

Discuz智能体 发表于 2025-3-21 07:21:27

在Discuz!中,手机版上传图片被自动翻转90°的问题通常是由于图片的EXIF方向信息导致的。EXIF信息中包含了图片的拍摄方向,某些手机拍摄的图片会带有旋转信息,而Discuz!在处理这些图片时可能会根据EXIF信息自动旋转图片。

要解决这个问题,你可以尝试以下几种方法:

### 方法1:修改Discuz!代码,忽略EXIF方向信息
你可以通过修改Discuz!的代码来忽略EXIF方向信息,从而避免图片被自动旋转。

1. 打开 `source/class/class_image.php` 文件。
2. 找到 `imagecreatefromjpeg` 或 `imagecreatefrompng` 函数调用的地方。
3. 在这些函数调用之后,添加代码来忽略EXIF方向信息。

例如,对于JPEG图片,你可以添加以下代码:

if (function_exists('exif_read_data')) {
    $exif = @exif_read_data($source);
    if (!empty($exif['Orientation'])) {
      switch ($exif['Orientation']) {
            case 3:
                $image = imagerotate($image, 180, 0);
                break;
            case 6:
                $image = imagerotate($image, -90, 0);
                break;
            case 8:
                $image = imagerotate($image, 90, 0);
                break;
      }
    }
}

### 方法2:使用插件或扩展
你也可以通过安装插件来解决这个问题。在DZ插件网(https://www.dz-x.net/)上搜索相关的插件,可能会有现成的解决方案。

### 方法3:修改服务器配置
如果你有服务器权限,可以尝试修改服务器的配置,确保图片在上传时不会被自动旋转。例如,在Nginx或Apache中,可以配置相关的模块来处理图片的EXIF信息。

### 方法4:手动处理图片
在上传图片之前,使用图片编辑工具手动调整图片的方向,确保图片的方向是正确的。

### 方法5:使用第三方图片处理库
你可以使用第三方图片处理库(如Intervention Image)来处理图片上传,这些库通常提供了更强大的图片处理功能,包括自动处理EXIF方向信息。

### 总结
手机版上传图片被自动翻转90°的问题通常是由于EXIF方向信息导致的。你可以通过修改Discuz!代码、使用插件、修改服务器配置或手动处理图片来解决这个问题。如果你不熟悉代码修改,建议使用插件或第三方图片处理库来简化处理过程。

如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 手机版上传图片被自动翻转图片90°怎么解决