Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何应用EXIF定向_Javascript_Jquery_Html_Exif - Fatal编程技术网

Javascript 如何应用EXIF定向

Javascript 如何应用EXIF定向,javascript,jquery,html,exif,Javascript,Jquery,Html,Exif,我注意到并不是每个浏览器都应用EXIF方向 我手机上的Chrome不采用EXIF定位,但Safari mobile采用 既然它不是标准的,我如何在Safari上应用EXIF方向而不应用两次呢 此外,我还想知道是否有可能在客户端应用方向,这样我就不必在服务器端(而不仅仅是javascript中的图像旋转)之后再做 为了确保无论浏览器和exif方向如何,图像都能正确显示,您需要使用javascript进行旋转并将图像放置在画布上。这可以保护它不受“双重旋转”的影响,而这种旋转是本机支持的,例如saf

我注意到并不是每个浏览器都应用EXIF方向

我手机上的Chrome不采用EXIF定位,但Safari mobile采用

既然它不是标准的,我如何在Safari上应用EXIF方向而不应用两次呢

此外,我还想知道是否有可能在客户端应用方向,这样我就不必在服务器端(而不仅仅是javascript中的图像旋转)之后再做


为了确保无论浏览器和exif方向如何,图像都能正确显示,您需要使用javascript进行旋转并将图像放置在画布上。这可以保护它不受“双重旋转”的影响,而这种旋转是本机支持的,例如safari


我使用github的项目解决了这个问题,这使它变得非常简单;请看我的答案:

也许会有帮助。编辑:也很好。我不确定我是否理解答案。我已经有了EXIF方向,但是我如何编辑图片以应用方向您可以使用css
rotation
属性并使用javascriptI有条件地应用它我已经这样做了,但是由于safari尊重EXIF方向,这将是一个双重方向。好主意!我设法做到这一点,硬编码它时,一个用户在safari巫婆是不好的。。。
function handleFileSelect(evt) {

var previewContainer = evt.data.previewContrainer;

evt.stopPropagation();
evt.preventDefault();

var files;
if (evt.target.files) {
    files = evt.target.files // FileList object
}
else if (evt.originalEvent.dataTransfer.files) {
    files = evt.originalEvent.dataTransfer.files
}

//if there's a file
if (files) {

    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {
        var orientation = 0;

        // Only process image files.
        if (!f.type.match('image.*')) {
            continue;
        }

        //EXIF.getData(f, function () {
        //    orientation = EXIF.getTag(this, "Orientation");
        //    alert(orientation);
        //    alert(EXIF.pretty(this));
        //});

        createReader(f, previewContainer);

    }
}
}