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

时间:2013-06-30 22:17:30

标签: android file input camera smartphone

我正在使用html,tag:

<input type = "file" />

在Android和许多cellulars上,我可以通过拍照并保存来直接获取文件。

我如何知道(通过javascript代码)我是如何获取图片的(直接通过相机或我手机上的某些文件)?

我做了一些workarround,并找到了exif(http://www.nihilogic.dk/labs/exif/exif.js),但我没有成功使用它来动态加载图片,如网站:http://exif-viewer.com/ 需要一些源代码示例,以了解exif如何处理动态加载的图像。

谢谢:)

1 个答案:

答案 0 :(得分:1)

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

我需要的是将二进制数据转换为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 - 我不确切知道问题出在哪里)帮我一个忙,并在我从文件加载图像时自动旋转图像,所以它总是正确显示。

现在我怎么知道何时旋转图像以及何时不旋转图像。

谢谢:)