【发布时间】:2018-08-27 08:40:25
【问题描述】:
我必须在我的图像上设置 exif 数据。在 Android 8 中我的代码工作正常,但在 Android 7 中它报告下面的错误,然后没有 exif 数据保存在图像上:
W/ExifInterface:给定标签 (GPSLatitude) 值与预期格式之一不匹配:URATIONAL(猜测:STRING)
这是我的代码:
public void geoTag(String filename, double lng, double lat){
ExifInterface exif;
try {
exif = new ExifInterface(filename);
int num1Lat = (int)Math.floor(lat);
int num2Lat = (int)Math.floor((lat - num1Lat) * 60);
double num3Lat = (lat - ((double)num1Lat+((double)num2Lat/60))) * 3600000;
int num1Lon = (int)Math.floor(lng);
int num2Lon = (int)Math.floor((lng - num1Lon) * 60);
double num3Lon = (lng - ((double)num1Lon+((double)num2Lon/60))) * 3600000;
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, num1Lat+"/1,"+num2Lat+"/1,"+num3Lat+"/1000");
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, num1Lon+"/1,"+num2Lon+"/1,"+num3Lon+"/1000");
...........
【问题讨论】:
-
num1Lat+"/1,"+num2Lat+"/1,"+num3Lat+"/1000")抱歉。我们不知道你想设置什么。请给出字符串值。发布可重现的代码。 -
您好,我想为图库中的图像设置经度和纬度。代码在上面并且可以工作,但仅适用于 Android Oreo (api 26)。请参阅下面的答案...对于字符串值,但重复它很奇怪。
-
你只是重复了自己。我们都知道。你没有提供我要求的信息。我们不能提供帮助。
标签: android latitude-longitude exif android-gps