Javascript 使用readAsDataURL检索原始图像时的图像方向

Javascript 使用readAsDataURL检索原始图像时的图像方向,javascript,image,html,orientation,filereader,Javascript,Image,Html,Orientation,Filereader,我找不到任何使用FileReader.readAsDataURL并在具有正确图像方向的容器中显示结果图像的示例 所有来自我的相机和iPhone设备的肖像图像都有这个问题。只有使用adobe photoshop保存的肖像照片似乎没有此问题 这是我在互联网上找到的一个示例系统。我的代码非常相似: 请注意,上载此照片时,它是以横向模式加载的: 请注意,使用浏览器下载图像时,图像实际上显示在横向视图中。当您将其保存到磁盘并用finder打开时,它将以纵向方式预览。(可能查找者使用exif信息很聪明)

我找不到任何使用FileReader.readAsDataURL并在具有正确图像方向的容器中显示结果图像的示例

所有来自我的相机和iPhone设备的肖像图像都有这个问题。只有使用adobe photoshop保存的肖像照片似乎没有此问题

这是我在互联网上找到的一个示例系统。我的代码非常相似:

请注意,上载此照片时,它是以横向模式加载的:

请注意,使用浏览器下载图像时,图像实际上显示在横向视图中。当您将其保存到磁盘并用finder打开时,它将以纵向方式预览。(可能查找者使用exif信息很聪明)

使用exif.js,我发现示例图像的方向为8。使用photoshop保存的照片的方向为1


现在,你们建议我怎么做?我应该在画布上打印它并根据exif信息进行旋转吗?有人对此有很好的指导吗?以前有人遇到过这个问题吗?

事实上,我今天遇到了这个问题,并解决了它

在创建图像的示例中的行之后

这就是我所做的

var image = $(".uploaded");
                var img = new Image();

                img.src = e.target.result;

                if (img.complete) { // was cached
                    if (img.height < img.width) {
                        $(image).addClass("landscape").removeClass("portrait");

                    }
                    else {
                        $(image).addClass("portrait").removeClass("landscape");
                    }


                }
                else { // wait for decoding
                    img.onload = function () {
                        if (img.height < img.width) {
                            $(image).addClass("landscape").removeClass("portrait");

                        }
                        else {
                            $(image).addClass("portrait").removeClass("landscape");
                        }
                    }
                }
var image=$(“.upload”);
var img=新图像();
img.src=e.target.result;
如果缓存了(img.complete){//
if(img.高度
目前,我不得不在网页中创建一个旋转工具。用户必须手动旋转。我相信可以读取exif旋转,然后自动旋转,但是使用exif.js处理10mb jpg非常慢,所以我暂时不考虑。