移除极少使用的metadata-extractor图片Meta获取类库,若有需要可自行添加该类库。

This commit is contained in:
thinkgem
2018-12-31 16:37:50 +08:00
parent d22fe96763
commit 4147a940e1
3 changed files with 68 additions and 68 deletions

View File

@@ -1,66 +1,66 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.jeesite.common.image;
import java.io.File;
import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.lang.Rational;
import com.drew.metadata.Metadata;
import com.drew.metadata.exif.GpsDirectory;
/**
* 图片地理信息获取
* @author ThinkGem
*/
public class ImageGeo {
public double lat = 0.0;
public double lon = 0.0;
public double alt = 0.0;
public boolean error = false;
public ImageGeo(String filename) {
try {
error = false;
File jpegFile = new File(filename);
Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
GpsDirectory gpsdir = (GpsDirectory) metadata.getDirectoriesOfType(GpsDirectory.class);
Rational latpart[] = gpsdir.getRationalArray(GpsDirectory.TAG_LATITUDE);
Rational lonpart[] = gpsdir.getRationalArray(GpsDirectory.TAG_LONGITUDE);
String northing = gpsdir.getString(GpsDirectory.TAG_LATITUDE_REF);
String easting = gpsdir.getString(GpsDirectory.TAG_LONGITUDE_REF);
try {
alt = gpsdir.getDouble(GpsDirectory.TAG_ALTITUDE);
} catch (Exception ex) {}
double latsign = 1.0d;
if (northing.equalsIgnoreCase("S")) {
latsign = -1.0d;
}
double lonsign = 1.0d;
if (easting.equalsIgnoreCase("W")) {
lonsign = -1.0d;
}
lat = (Math.abs(latpart[0].doubleValue()) + latpart[1].doubleValue() / 60.0d + latpart[2].doubleValue() / 3600.0d) * latsign;
lon = (Math.abs(lonpart[0].doubleValue()) + lonpart[1].doubleValue() / 60.0d + lonpart[2].doubleValue() / 3600.0d) * lonsign;
if (Double.isNaN(lat) || Double.isNaN(lon)) {
error = true;
}
} catch (Exception ex) {
error = true;
}
System.out.println(filename + ": (" + lat + ", " + lon + ")");
}
// public static void main(String[] args) {
// ImageGeo imageGeo = new ImageGeo(ImageGeo.class.getResource("IMAG0068.jpg").getFile());
// System.out.println(imageGeo.lon + "," + imageGeo.lat);
///**
// * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
// */
//package com.jeesite.common.image;
//
//import java.io.File;
//
//import com.drew.imaging.jpeg.JpegMetadataReader;
//import com.drew.lang.Rational;
//import com.drew.metadata.Metadata;
//import com.drew.metadata.exif.GpsDirectory;
//
///**
// * 图片地理信息获取
// * @author ThinkGem
// */
//public class ImageGeo {
//
// public double lat = 0.0;
// public double lon = 0.0;
// public double alt = 0.0;
// public boolean error = false;
//
// public ImageGeo(String filename) {
// try {
// error = false;
// File jpegFile = new File(filename);
// Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
//
// GpsDirectory gpsdir = (GpsDirectory) metadata.getDirectoriesOfType(GpsDirectory.class);
// Rational latpart[] = gpsdir.getRationalArray(GpsDirectory.TAG_LATITUDE);
// Rational lonpart[] = gpsdir.getRationalArray(GpsDirectory.TAG_LONGITUDE);
// String northing = gpsdir.getString(GpsDirectory.TAG_LATITUDE_REF);
// String easting = gpsdir.getString(GpsDirectory.TAG_LONGITUDE_REF);
//
// try {
// alt = gpsdir.getDouble(GpsDirectory.TAG_ALTITUDE);
// } catch (Exception ex) {}
//
// double latsign = 1.0d;
// if (northing.equalsIgnoreCase("S")) {
// latsign = -1.0d;
// }
// double lonsign = 1.0d;
// if (easting.equalsIgnoreCase("W")) {
// lonsign = -1.0d;
// }
//
// lat = (Math.abs(latpart[0].doubleValue()) + latpart[1].doubleValue() / 60.0d + latpart[2].doubleValue() / 3600.0d) * latsign;
// lon = (Math.abs(lonpart[0].doubleValue()) + lonpart[1].doubleValue() / 60.0d + lonpart[2].doubleValue() / 3600.0d) * lonsign;
//
// if (Double.isNaN(lat) || Double.isNaN(lon)) {
// error = true;
// }
// } catch (Exception ex) {
// error = true;
// }
// System.out.println(filename + ": (" + lat + ", " + lon + ")");
// }
}
//
//// public static void main(String[] args) {
//// ImageGeo imageGeo = new ImageGeo(ImageGeo.class.getResource("IMAG0068.jpg").getFile());
//// System.out.println(imageGeo.lon + "," + imageGeo.lat);
//// }
//
//}