从data_URL读取图像详细信息(GPS长纬度)

本文关键字:GPS 纬度 详细信息 图像 data URL 读取 | 更新日期: 2023-09-27 18:34:50

我使用Cordova PhoneGap API打开相机

        $scope.capturePhoto = function () {
        navigator.camera.getPicture(onPhotoDataSuccess, onFail, {quality: 50,
                destinationType: navigator.camera.DestinationType.DATA_URL, sourceType: 1});
        }
        $scope.capturePhotoEdit = function () {
            navigator.camera.getPicture(onPhotoDataSuccess, onFail, {quality: 20, allowEdit: true,
                destinationType: navigator.camera.DestinationType.DATA_URL, sourceType: 1});
        }
        $scope.getPhoto = function () {
            navigator.camera.getPicture(onPhotoDataSuccess, onFail, {quality: 50,
                destinationType: navigator.camera.DestinationType.DATA_URL, sourceType: 0});
        }
        $scope.getPhotoAlbum = function () {
            navigator.camera.getPicture(onPhotoDataSuccess, onFail, {quality: 50,
                destinationType: navigator.camera.DestinationType.DATA_URL, sourceType: 2});
        }
        onFail = function (message) {
            $window.alert(message);
        } 

在像 base64 这样的长字符串中DATA_URL但 exif 在 C# 中无法读取图像详细信息

如果我使用文件上传并转换为base64,那么在C#中轻松获取Exif详细信息(GPS长纬度(,但不打开带有文件上传器标签的相机:

 function readImage(input) {
    console.log(input);
        if ( input.files && input.files[0] ) {
           var FR= new FileReader();
           FR.onload = function(e) {
            // $('#img').attr( "src", e.target.result );
             $('#base').text( e.target.result );
           };       
         FR.readAsDataURL( input.files[0] );
       }
    }
   $("#asd").change(function(){
         readImage( this );
   });

阅读 C# 代码中的 Exif 详细信息是:

using ExifLibrary;
byte[] data = Convert.FromBase64String(model.imagebase64);
            string file = model.workId + "_" + SnapName + ".Jpeg";
            string liveserverpath =        ConfigurationManager.AppSettings["MyFileLocation"].ToString();
            liveserverpath = liveserverpath + file;
            var exif = ExifFile.Read(liveserverpath);
            try
            {
                newmodel.P_Latitude = (exif.Properties[ExifTag.GPSLatitude]).ToString();
                newmodel.P_Longitude = (exif.Properties[ExifTag.GPSLongitude]).ToString();
                newmodel.Snap_Status = "Valid";
            }

我的问题是:为什么Data_URL(字符串(和文件中缺少图像详细信息 上传图像到 base64 轻松读取图像详细信息(GPS 长纬度(

请让我知道,帮助我,我花了一周的时间,但没有从data_URL那里得到任何 EXIF 图像详细信息,

从data_URL读取图像详细信息(GPS长纬度)

这是 2.6.0 之前的 Cordova 版本中的已知问题。如果你确保你使用的是最新版本的Cordova,你应该没问题。