Android:JPEG EXIF情報追加
1902 ワード
ExifInterface:https://developer.android.com/reference/android/media/ExifInterface情報を追加:
説明:1、ここでの経緯度は度分秒形式であり、地図apiが位置決めして得た経緯度とは異なる.2、DATETIME形式固定(公式には具体的な形式は見られない)YYY:MM:DD HH:mm:SS 3、TAG_DATETIME_ORIGINAL Android M以降4、Android公式TAGをサポートUSER_COMMENTはUTF-8をサポートしていません
TAG_の追加方法USER_COMMENT中国語?
ExifInterface exif = new ExifInterface(imagePath);
//
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE,gpsInfoConvert(lng));
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF,lng > 0 ? "E" : "W");
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE,gpsInfoConvert(lat));
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF,lat > 0 ? "N" : "S");
exif.setAttribute(ExifInterface.TAG_DATETIME,getNowTime("YYYY:MM:DD HH:mm:SS"));
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
//exif.setAttribute(ExifInterface.TAG_USER_COMMENT,ToPinyin(address));
exif.setAttribute(ExifInterface.TAG_DATETIME_ORIGINAL,getNowTime("YYYY:MM:DD HH:mm:SS"));
}
exif.saveAttributes();
説明:1、ここでの経緯度は度分秒形式であり、地図apiが位置決めして得た経緯度とは異なる.2、DATETIME形式固定(公式には具体的な形式は見られない)YYY:MM:DD HH:mm:SS 3、TAG_DATETIME_ORIGINAL Android M以降4、Android公式TAGをサポートUSER_COMMENTはUTF-8をサポートしていません
private static final Charset ASCII = Charset.forName("US-ASCII");
public static ExifAttribute createString(String value) {
final byte[] ascii = (value + '\0').getBytes(ASCII);
return new ExifAttribute(IFD_FORMAT_STRING, ascii.length, ascii);
}
// ExifInterface string ASCII , , getAttribute, string 。
// , ( , )
TAG_の追加方法USER_COMMENT中国語?
JpegInfo inJpegInfo = new JpegInfo(file);
try {
inJpegInfo.set(ExifTagConstants.EXIF_TAG_USER_COMMENT, address);
rewriteInplace(inJpegInfo, file);
} catch (ImageWriteException e) {
e.printStackTrace();
} catch (ImageReadException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// :https://www.jianshu.com/p/f3c01883cc7e