符合EXIFJPEG标准的图片,除了记录图片压缩数据之外,在存储了拍摄参数,其中包括拍摄时GPS参数信息,因此,可以利用程序从EXIF元数据信息中解析提取GPS位置信息。
1. Java读取EXIF信息
Metadata Extractor是一个开源的Java用具解析图片元数据的库,可以用来识别JPEG图片的EXIF信息,具体信息参见:http://code.google.com/p/metadata-extractor/
下载地址为:http://code.google.com/p/metadata-extractor/downloads/list
import java.io.File;输出结果如下:
import java.io.IOException;
import java.util.Collection;
import com.drew.imaging.ImageProcessingException;
import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.metadata.Metadata;
import com.drew.metadata.MetadataException;
import com.drew.metadata.Tag;
import com.drew.metadata.exif.GpsDirectory;
public class Main {
public static void main(String[] args) throws ImageProcessingException,
IOException, MetadataException {
File jpegFile = new File("01.jpg");
Metadata meta = JpegMetadataReader.readMetadata(jpegFile);
GpsDirectory gps = meta.getDirectory(GpsDirectory.class);
if (gps != null) {
Collection<Tag> tags = gps.getTags();
for (Tag tag : tags) {
System.out.println(tag);
}
}
}
}
[GPS] GPS Version ID - 2.200
[GPS] GPS Latitude Ref - N
[GPS] GPS Latitude - 40.0° 0.0' 16.999999999993065"
[GPS] GPS Longitude Ref - E
[GPS] GPS Longitude - 116.0° 22.0' 44.99999999998636"
[GPS] GPS Altitude Ref - Below sea level
[GPS] GPS Altitude - 0 metres
[GPS] GPS Time-Stamp - 8:29:45 UTC
[GPS] GPS Processing Method - 65 83 67 73 73 0 0 0
[GPS] GPS Date Stamp - 2014:06:16
2. 在Android中提取GPS信息
Android API提供解析EXIF,具体可以参见这里:
http://blog.csdn.net/whucyl/article/details/9103171