如何将exif数据添加到android上的照片

问题描述

我正在使用 react-native-camera 拍照。在选项中,我添加了坐标(这有效)和“ImageDescription”。但是记录响应时不会出现“ImageDescription”。然后我使用 react-native-exif 来读取文件的 exif 数据。 (我认为问题是由于api级别设置不正确,因为我得到的属性低于api级别9)我的代码

  const takePhoto = async () => {
    let exifData = {};

    if(geoCoordinates.lat && geoCoordinates.lng){
      exifData = { 
        GPSLatitude: geoCoordinates.lat,GPSLongitude: geoCoordinates.lng,GPSAltitude: geoCoordinates.altitude,ImageDescription: "Here is description"
      };
    }

    const options = { quality: imageQuality,writeExif: exifData};
    const data = await takePicture(options);
    
    Exif.getExif(data.uri)
    .then(msg => console.log('OK: ' + JSON.stringify(msg)))
    .catch(msg => console.log('ERROR: ' + msg));
  };

日志:

OK: {"ImageWidth":1280,"ImageHeight":720,"Orientation":6,"originalUri":"/data/user/0/com.appmobile/cache/Camera/a2920351-9fa0-4254-baf0-44cab3ba7231.jpg","exif":{"originalUri":"/data/user/0/com.appmobile/cache/Camera/a2920351-9fa0-4254-baf0-44cab3ba7231.jpg","WhiteBalance":"0","SubSecTimeDigitized":"0","Orientation":"6","Make":"Google","ISOSpeedratings":"100","ImageWidth":"1280","SubSecTime":"0","GPSLongitude":"*longitud*","ImageLength":"720","GPSTimeStamp":null,"ExposureTime":"0.01","FocalLength":"5000/1000","GPSLatitudeRef":"N","GPSDateStamp":null,"GPSAltitudeRef":"0","GPSLatitude":"*latitude*","SubSecTimeOriginal":"0","GPSLongitudeRef":"W","DateTime":"2021:06:08 16:14:54","GPSAltitude":"0/10000","Flash":"0","GPSProcessingMethod":null,"Model":"sdk_gphone_x86","DateTimeDigitized":"2021:06:08 16:14:54","FNumber":"2.8"}}

额外信息:

android/build.gradle:

  • buildToolsversion = "29.0.2"
  • minSdkVersion = 25
  • compileSdkVersion = 29
  • targetSdkVersion = 29

package.json:

  • "react": "16.13.1",
  • "react-native": "^0.63.4",
  • "react-native-camera": "git+https://git@github.com/react-native-community/react-native-camera.git",
  • "react-native-exif": "^0.4.0",

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)