|
@@ -1,5 +1,9 @@
|
|
|
package com.onemap.analyse;
|
|
|
|
|
|
+import com.drew.imaging.ImageMetadataReader;
|
|
|
+import com.drew.metadata.Metadata;
|
|
|
+import com.drew.metadata.exif.ExifDirectoryBase;
|
|
|
+
|
|
|
import java.awt.Graphics2D;
|
|
|
import java.awt.Image;
|
|
|
import java.awt.geom.AffineTransform;
|
|
@@ -101,6 +105,16 @@ public class ImageRotationCorrector {
|
|
|
return rotatedImage;
|
|
|
}
|
|
|
|
|
|
+ public static int getImageOrientation(File imageFile) throws Exception {
|
|
|
+ Metadata metadata = ImageMetadataReader.readMetadata(imageFile);
|
|
|
+ for (ExifDirectoryBase directory : metadata.getDirectoriesOfType(ExifDirectoryBase.class)) {
|
|
|
+ if (directory.containsTag(ExifDirectoryBase.TAG_ORIENTATION)) {
|
|
|
+ return directory.getInt(ExifDirectoryBase.TAG_ORIENTATION);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 1; // 默认方向
|
|
|
+ }
|
|
|
+
|
|
|
public static void main(String[] args) {
|
|
|
try {
|
|
|
File fileDir = new File("D:\\02DATA\\三亚\\甲方数据\\飞行\\三亚无人机数据\\24001120450\\下");
|
|
@@ -110,7 +124,7 @@ public class ImageRotationCorrector {
|
|
|
// File imageFile = file;
|
|
|
BufferedImage image = ImageIO.read(imageFile);
|
|
|
// 获取EXIF方向信息
|
|
|
- int orientation = ImageRotationReader.getImageOrientation(imageFile);
|
|
|
+ int orientation = getImageOrientation(imageFile);
|
|
|
if (1 != orientation) {
|
|
|
// 校正图像方向
|
|
|
BufferedImage correctedImage = correctImageOrientation(image, orientation);
|