Przeglądaj źródła

添加获取角度

DESKTOP-2K9OVK9\siwei 5 dni temu
rodzic
commit
d3090b7a9d

+ 15 - 1
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/ImageRotationCorrector.java

@@ -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);