图片旋转以后,怎么让上传到服务器的图片是经过旋转的??

插件使用的是webuploader 上传前对图片 进行了旋转 怎么保证上传到服务器的图片是经过旋转的

clipboard.png
..]

阅读 6.8k
4 个回答

有可能是旋转时只修改了Exif信息,并未对像素进行实际的旋转操作。

如果WebUploader开启了客户端js图片压缩,可能会丢失Exif信息,导致服务器端也无法判断。可以在WebUploader压缩之前用其他js库判断一下旋转方向,一起提交给服务器端。如https://www.npmjs.com/package...

服务器端需要读取图片的Exif信息,里面有一个Orientation字段存储了图片的旋转方向,需要根据这个字段的值进行旋转后,再进行图片压缩处理。

http://php.net/manual/zh/func...

<?php
$image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name']));
$exif = exif_read_data($_FILES['image_upload']['tmp_name']);
if(!empty($exif['Orientation'])) {
    switch($exif['Orientation']) {
        case 8:
            $image = imagerotate($image,90,0);
            break;
        case 3:
            $image = imagerotate($image,180,0);
            break;
        case 6:
            $image = imagerotate($image,-90,0);
            break;
    }
}
// $image now contains a resource with the image oriented correctly
?>

你要用PS等处理图片的工具旋转处理,你这个旋转并没有真正的旋转图片,图片宽高还是没变化

一般来说图片这种操作是交由后端实现的,通过前端传递旋转参数,后端重新生成图片。
现在一定兼容条件下,前端可以通过canvas转换成base64上传,可以通过canvas旋转,然后上传图片。

新手上路,请多包涵

把旋转角度也传给后台,后台做旋转

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题