Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Android 使用智能手机时,检测加载的图像是否直接从相机拍摄_Android_File_Input_Camera_Smartphone - Fatal编程技术网

Android 使用智能手机时,检测加载的图像是否直接从相机拍摄

Android 使用智能手机时,检测加载的图像是否直接从相机拍摄,android,file,input,camera,smartphone,Android,File,Input,Camera,Smartphone,我正在使用html,标记: <input type = "file" /> 在android和许多Cellular上,我可以通过拍照和保存直接获取文件 我怎么知道(通过javascript代码)我是如何得到照片的(直接通过相机,或者通过手机上的一些文件) 我在Arround做了一些工作,找到了exif(),但我没有成功地将其用于动态加载图像,因为站点: 需要一些源代码示例,以了解exif如何处理动态加载的图像 谢谢:)我自己找到了解决方案,所以我想参与其中: 我需要的是将二进制

我正在使用html,标记:

<input type = "file" />

在android和许多Cellular上,我可以通过拍照和保存直接获取文件

我怎么知道(通过javascript代码)我是如何得到照片的(直接通过相机,或者通过手机上的一些文件)

我在Arround做了一些工作,找到了exif(),但我没有成功地将其用于动态加载图像,因为站点: 需要一些源代码示例,以了解exif如何处理动态加载的图像


谢谢:)

我自己找到了解决方案,所以我想参与其中:

我需要的是将二进制数据转换为exif数据, 因此,在exif.js上,我添加了以下内容

jQuery.fn.getExif = function() {
    var exif;
    var bin;
    var bf;
    bin = atob(this.attr("src").split(',')[1]);
    if (bin) {
        bf = new BinaryFile(bin);
    }
    if (bf) {
        exif = EXIF.readFromBinaryFile(bf);
    }
    if (exif) {
        this.attr("exifdata", exif);
    }
    return exif;
}
并使用上面的代码-只要得到我想要的任何exif值

主要问题是图像应该根据exif进行旋转 (如果方向是顺时针90度,那么我应该逆时针旋转90度,以固定方向)-大多数设备都没有问题, 但有一个问题在一些设备上依然存在,比如IPAD

IPAD(或者Safari,我不知道问题到底出在哪里)帮了我一个忙,当我从文件中加载图像时,它会自动旋转图像,所以总是正确显示

现在,我如何知道何时旋转图像以及何时不旋转图像

谢谢:)