cordova-plugin-camera icon indicating copy to clipboard operation
cordova-plugin-camera copied to clipboard

Cordova plugin camera get picture. metadata not found in cordova ios

Open dtsvn-thudk opened this issue 1 year ago • 4 comments

Bug Report

Problem

Cordova plugin camera get picture. metadata not found in cordova ios

What is expected to happen?

Get metadata data when taking photos on iOS

What does actually happen?

When I upload a photo using Android, the photo has metadata information, but when I upload a photo using iOS, there is no metadata information. I used the exifjs library (https://cdn.jsdelivr.net/npm/exif-js) to test and the results are as follows: android: image

ios: image

Information

I see @erisu has committed on this issue! I see that cordova plugin camere version 7.0.0 mentions preserving metadata on ios. image

Command or Code

`

base64ToArrayBuffer: function(base64) {
          base64 = base64.replace(/^data\:([^\;]+)\;base64,/gmi, "");
          var binary = atob(base64);
          var len = binary.length;
          var buffer = new ArrayBuffer(len);
          var view = new Uint8Array(buffer);
          for (var i = 0; i < len; i++) {
              view[i] = binary.charCodeAt(i);
          }
          return buffer;
      },
  snapPicture: function(callBack) {
          navigator.camera.getPicture(successCamera, failCamera, { 
              destinationType: Camera.DestinationType.DATA_URL,
              correctOrientation: true
          });

    function successCamera(base64) {
        let arrayBuffer = base64ToArrayBuffer(base64Image);
        let dataExif = EXIF.readFromBinaryFile(arrayBuffer);
        if (dataExif && dataExif.DateTime) {
          alert("Exif Date: " + dataExif.DateTime);
        } else {
          alert("Exif Date not found!");
        }
    }
    function failCamera(message) {
        app.preloader.hide();
    }
}, 

`

Environment, Platform, Device

Platform : ios: 17.4.1, ios: 16.2 Device: iphone 12, ipad gen 10

Version information

  • cordova-ios: 7.0.1
  • cordova-android: 12.0.1
  • cordova-plugin-camera :7.0.0
  • exifjs: 2.3.0 (https://github.com/exif-js/exif-js)

Checklist

  • [x ] I searched for existing GitHub issues
  • [x ] I updated all Cordova tooling to most recent version
  • [x ] I included all the necessary information above

dtsvn-thudk avatar Apr 01 '24 09:04 dtsvn-thudk

I've made a patch where EXIF Metadata is available again. Let me know if you still need it and I can share. It will be nice to have someone else testing :)

lmarcelocc avatar Sep 09 '24 16:09 lmarcelocc

I have run into the same problem where iOS is not capturing the exif data. If you could share your patch, that would be great. Thank you.

daniel-hung avatar Sep 19 '24 18:09 daniel-hung

Please give it a try and let me know if it worked out for you. cordova-plugin-camera+7.0.0.patch

lmarcelocc avatar Sep 19 '24 19:09 lmarcelocc

Line 877 in CDVCamera.m try change self.data to imageDataWithExif

if (![imageDataWithExif writeToFile:filePath options:NSAtomicWrite error:&err]) {

iPMisterX avatar Jan 11 '25 08:01 iPMisterX