我有一个问题,当JavaScript在上传之前呈现一个正确的旋转图像。似乎当你渲染的图像巫婆只有在exif数据上有正确的旋转,浏览器不使用它。
当JavaScript在网站上显示图片时,用户会看到他们在系统上的不同的旋转。
代码是非常基本的:
你知道纠正这个旋转错误的简单方法吗?
LbEmeraude.handleImage = function (f) {
    if (f.type.match('image.*')) {
        var reader = new FileReader();
        reader.onload = (function (file) {
            return function (e) {
                var image = {};
                image.dataAsUrl = e.target.result;
                LbEmeraude.renderImage(image);
            };
        })(f);
        var image = reader.readAsDataURL(f);
    }
}
LbEmeraude.renderImage = function (image) {
    var eImage = LbEmeraude.createImgElement(image.dataAsUrl);
    $('someElement').append(eImage);
};
LbEmeraude.createImgElement = function (src) {
    var image = document.createElement("img");
    image.src = src;
    return image;
}谢谢你的关注。
发布于 2013-10-01 05:13:26
你想要的不是什么新东西..。看看这个:bug.cgi?id=298619
该吸盘于2005年开业,至今仍未解决。这篇文章很古老,但非常健壮:http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/
但关键的地方是,他注意到浏览器通常不会在html img标签的上下文中应用exif旋转,但是在打开自己的标签时可能会尊重它。
因此,目前没有浏览器会默认这样做,似乎这样做的web应用程序大多是在服务器上获取该值,并为不同的资产提供服务。
但是如果你想破解它的话,它看起来是有希望的:Accessing JPEG EXIF rotation data in JavaScript on the client side
https://stackoverflow.com/questions/17969944
复制相似问题