gpt4 book ai didi

android - Phonegap/Cordova 相机插件 - 如何获取照片的日期/时间戳?

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:41 25 4
gpt4 key购买 nike

我有一个 Phonegap 应用程序,它需要让用户既可以使用手机的相机拍照,又可以让用户从设备上已有的照片中进行选择。

我需要捕捉照片的拍摄日期/时间作为元数据的一部分,但我很难弄清楚如何使用 Phonegap/Cordova 做到这一点。

最初我认为我可以使用文件 API 的 FileEntry.getMetadata() 调用,但这不会返回 modificationTime 属性的有效日期。我认为 phonegap 还会转换设备上的文件,以便您从相机插件收到的不是设备上的原始文件,所以即使 getMetadata() 调用有效,日期也不会是正确的。

除了为我需要的每个平台编写我自己的相机插件版本之外,还有其他解决方法吗?

这似乎是解决它的唯一方法,这似乎很疯狂。

最佳答案

所以,我设法解决了这个问题。

可以从 JPEG 文件内的 EXIF 数据标签中检索日期/时间戳以及一系列其他信息。这可以使用这个有用的 JS 库来完成 - https://github.com/jseidelin/exif-js

不幸的是,Android 的 Cordova 相机插件在转换从图库中选择的图像时不会复制 EXIF 标签,只有在使用相机拍摄图像时才会复制,所以这是一个问题,但我会通过 fork 插件来解决这个问题。该插件的 iOS 版本似乎可以正确执行此操作。

任何感兴趣的人的代码 -

var source = fromCamera 
? Camera.PictureSourceType.CAMERA
: Camera.PictureSourceType.PHOTOLIBRARY;

var opts = {
encodingType: Camera.EncodingType.JPEG,
sourceType: source,
destinationType: Camera.DestinationType.NATIVE_URI
};

navigator.camera.getPicture(
function(imageURI) {
window.resolveLocalFileSystemURL(imageURI,
function(entry) {
entry.file(function(file) {
EXIF.getData(file, function() {
var datetime = EXIF.getTag(this, "DateTimeOriginal");
alert(datetime);
});

// do something useful....

}, standardErrorHandler);
},
function(e) {
alert('Unexpected error obtaining image file.');
standardErrorHandler(e);
});
},
function() {
// nada - cancelled
},
opts);

关于android - Phonegap/Cordova 相机插件 - 如何获取照片的日期/时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22372055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com