• java读取照片信息 获取照片拍摄时的经纬度


    项目结构

    源码:ImageInfo.zip

    第一步:添加需要的架包metadate-extractor.jar

      架包下载地址:https://code.google.com/p/metadata-extractor/downloads/list

      或者去Maven仓库下载 http://search.maven.org/#search%7Cga%7C1%7Cmetadata-extractor

    第二步:编写解析代码

     1 package com.drew.metadata;  
     2 import java.io.File;  
     3 
     4 import com.drew.imaging.ImageMetadataReader;  
     5 import com.drew.imaging.ImageProcessingException;  
     6 /**
     7  * java读取照片信息
     8  */
     9 public class SampleUsage{
    10     public static void main(String[] args) throws Exception, Exception{  
    11         File file = new File("E:\带有地理位置的图片.jpg");  
    12         printImageTags(file);
    13     } 
    14     /** 
    15      * 读取照片里面的信息 
    16      */ 
    17     private static void printImageTags(File file) throws ImageProcessingException, Exception{  
    18         Metadata metadata = ImageMetadataReader.readMetadata(file);  
    19         for (Directory directory : metadata.getDirectories()) {  
    20             for (Tag tag : directory.getTags()) {  
    21                 String tagName = tag.getTagName();  //标签名
    22                 String desc = tag.getDescription(); //标签信息
    23                 if (tagName.equals("Image Height")) {  
    24                     System.out.println("图片高度: "+desc);
    25                 } else if (tagName.equals("Image Width")) {  
    26                     System.out.println("图片宽度: "+desc);
    27                 } else if (tagName.equals("Date/Time Original")) {  
    28                     System.out.println("拍摄时间: "+desc);
    29                 }else if (tagName.equals("GPS Latitude")) {  
    30                     System.err.println("纬度 : "+desc);
    31 //                    System.err.println("纬度(度分秒格式) : "+pointToLatlong(desc));
    32                 } else if (tagName.equals("GPS Longitude")) {  
    33                     System.err.println("经度: "+desc);
    34 //                    System.err.println("经度(度分秒格式): "+pointToLatlong(desc));
    35                 }
    36             }  
    37         }  
    38     }  
    39     /** 
    40      * 经纬度格式  转换为  度分秒格式 ,如果需要的话可以调用该方法进行转换
    41      * @param point 坐标点 
    42      * @return 
    43      */ 
    44     public static String pointToLatlong (String point ) {  
    45         Double du = Double.parseDouble(point.substring(0, point.indexOf("°")).trim());  
    46         Double fen = Double.parseDouble(point.substring(point.indexOf("°")+1, point.indexOf("'")).trim());  
    47         Double miao = Double.parseDouble(point.substring(point.indexOf("'")+1, point.indexOf(""")).trim());  
    48         Double duStr = du + fen / 60 + miao / 60 / 60 ;  
    49         return duStr.toString();  
    50     }  
    51 }
    52  


     

  • 相关阅读:
    Java程序员必知的8大排序
    Servlet与JSP间的传值问题
    Servlet上传文件详细解析以及注意事项
    JSP入门学习经验
    统计语言模型(Statistical Language Models)(条件概率公式)
    自定义用户控件ascx
    asp.net相对路径、绝对路径
    A list of supported CSS selectors when invoking g(..)
    一位研究生导师心目中理想的论文(转)
    常用软件
  • 原文地址:https://www.cnblogs.com/tfgzs/p/3833673.html
Copyright © 2020-2023  润新知