1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        手把手教你利用Java獲取圖片GPS信息

        共 5432字,需瀏覽 11分鐘

         ·

        2021-07-26 18:29

        你知道的越多,不知道的就越多,業(yè)余的像一棵小草!

        成功路上并不擁擠,因?yàn)閳猿值娜瞬欢唷?/span>

        編輯:業(yè)余草

        推薦:https://www.xttblog.com/?p=5251

        一張圖片能包含很多敏感信息,其中就包括圖片拍攝的 GPS 信息。GPS 對多數(shù)網(wǎng)民來說都不太注重,然而對于懂技術(shù)的程序員來說,根據(jù) GPS 信息,我們能準(zhǔn)確的定位到他們。

        根據(jù)圖片上的 GSP 信息進(jìn)行定位,這對程序員來說是手到擒來。我們可以根據(jù)暗戀對象的朋友圈照片信息進(jìn)行簡單處理,你就能和她來一次恰巧的相遇。下面我們就利用 Java 來讀取照片的拍攝時間、GPS 定位以及手機(jī)型號等等信息。

        代碼很簡單,幾行就能搞定。首先,我們先從某某美女群里下載美女所發(fā)的照片信息。

        b73540bbe3aee4e45c59a0ce14a5b5f9.webp

        然后編寫 Java 代碼獲取圖片 GSP 等信息,核心代碼如下所示:

        public?static?void?getGpsDirectory(String?filePath){
        ????File?picFile?=?getPicFile(filePath);
        ????getGpsDirectory(picFile);
        }

        public?static?void?getGpsDirectory(File?picFile){
        ????Metadata?metadata?=?getPicMetadata(picFile);
        ????GpsDirectory?gpsDirectory?=?metadata.getFirstDirectoryOfType(GpsDirectory.class);
        ????if?(Objects.nonNull(gpsDirectory))?{
        ????????GeoLocation?geoLocation?=?gpsDirectory.getGeoLocation();
        ????????System.out.println(geoLocation.getLongitude());
        ????????System.out.println(geoLocation.getLatitude());
        ????}
        }

        public?static?Metadata?getPicMetadata(File?picFile){
        ????Metadata?metadata?=?null;
        ????try(InputStream?inputStream?=?new?FileInputStream(picFile);
        ????????BufferedInputStream?bufferedInputStream?=?new?BufferedInputStream(inputStream))?{
        ????????FileType?fileType?=?FileTypeDetector.detectFileType(bufferedInputStream);

        ????????switch?(fileType)?{
        ????????????case?Png:
        ????????????????metadata?=?PngMetadataReader.readMetadata(picFile);
        ????????????????break;
        ????????????case?Jpeg:
        ????????????????metadata?=?JpegMetadataReader.readMetadata(picFile);
        ????????????????break;
        ????????????default:
        ????????????????return?metadata;
        ????????}
        ????}?catch?(Exception?e){
        ????????e.printStackTrace();
        ????}

        ????return?metadata;
        }

        public?static?void?main(String[]?args)?{
        ????getGpsDirectory("/Users/xtt/Downloads/業(yè)余草/美女照騙.jpeg");
        }

        根據(jù)上面的代碼,你運(yùn)行后就會獲得圖片的 GPS 信息。

        24.41046111111111
        103.41424722222223

        然后訪問百度地圖 api(https://api.map.baidu.com/lbsapi/getpoint/),去根據(jù)經(jīng)緯度信息獲得照片的實(shí)際拍攝地址。

        294ed1ecf8182a27f3202ee112a0c830.webp經(jīng)緯度查地址

        如果你需要批量操作,或者批量獲取地址信息,可以根據(jù)百度地圖或高德地圖提供的 api 去用代碼調(diào)用獲取。

        //接口調(diào)用方法如下:
        //api_key:是你注冊的key值
        //coords:是你的經(jīng)緯度坐標(biāo)
        ?
        http://api.map.baidu.com/reverse_geocoding/v3/?ak="+api_key+"&output=json&coordtype=wgs84ll&location="+coords

        實(shí)際上根據(jù)一張未經(jīng)處理過的照片,我們能獲得想到對的信息。

        {海拔=0 metres, 手機(jī)=Xiaomi, 緯度=24.41046111111111, 型號=MI MAX, 經(jīng)度=103.41424722222223, 拍攝時間=2018:12:01 16:37:32, 
        拍攝地點(diǎn)=中國 云南省 紅河哈尼族彝族自治州 彌勒市 XXX路 XXX號 溫泉XXXX酒店}
        經(jīng)緯度:24.41046111111111,103.41424722222223
        拍攝時間:2018:12:01 16:37:32
        手機(jī)型號:Xiaomi MI MAX
        拍攝地點(diǎn):中國 云南省 紅河哈尼族彝族自治州 彌勒市 XXX路 XXX號 溫泉XXX酒店
        {"status":0,"result":{"location":{"lng":103.42283328917563,"lat":24.413805252378915},
        "formatted_address":"云南省紅河哈尼族彝族自治州彌勒市XXX路","business":"","addressComponent":
        {"country":"中國","country_code":0,"country_code_iso":"CHN","country_code_iso2":"CN",
        "province":"云南省","city":"紅河哈尼族彝族自治州","city_level":2,"district":"彌勒市","town":"","town_code":"","adcode":"532504","street":"溫泉路","street_number":"","direction":"","distance":""},"cityCode":107}}

        上面還只是我們列舉的部分信息,這里面包含美女使用的手機(jī)型號,拍攝時間,拍攝地址。。。

        49c9627ceb91c422c3232800f2877a6c.webp

        這些信息都是借助圖片的 Exif 獲得的。EXIF(Exchangeable Image File format)是“可交換圖像文件”的縮寫,當(dāng)中包含了專門為數(shù)碼相機(jī)的照片而定制的元數(shù)據(jù),可以記錄數(shù)碼照片的拍攝參數(shù)、縮略圖及其他屬性信息。

        EXIF 所記錄的元數(shù)據(jù)信息非常豐富,主要包含了以下幾種信息:

        • 拍攝日期
        • 拍攝器材(機(jī)身、鏡頭、閃光燈等)
        • 拍攝參數(shù)(快門速度、光圈F值、ISO速度、焦距、測光模式等)
        • 圖像處理參數(shù)(銳化、對比度、飽和度、白平衡等)
        • 圖像描述及版權(quán)信息
        • GPS定位數(shù)據(jù)
        • 縮略圖
        [JPEG] Compression Type - Baseline
        [JPEG] Data Precision - 8 bits
        [JPEG] Image Height - 2400 pixels
        [JPEG] Image Width - 3200 pixels
        [JPEG] Number of Components - 3
        [JPEG] Component 1 - Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
        [JPEG] Component 2 - Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
        [JPEG] Component 3 - Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
        [Exif Thumbnail] Thumbnail Compression - JPEG (old-style)
        [Exif Thumbnail] X Resolution - 72 dots per inch
        [Exif Thumbnail] Y Resolution - 72 dots per inch
        [Exif Thumbnail] Resolution Unit - Inch
        [Exif Thumbnail] Thumbnail Offset - 4860 bytes
        [Exif Thumbnail] Thumbnail Length - 26551 bytes
        [Exif SubIFD] F-Number - f/2.4
        [Exif SubIFD] Exif Version - 2.20
        [Exif SubIFD] Date/Time Original - 2012:03:30 13:37:36
        [Exif SubIFD] Components Configuration - YCbCr
        [Exif SubIFD] Aperture Value - f/2.4
        [Exif SubIFD] Focal Length - 4.31 mm
        [Exif SubIFD] Makernote - 1
        [Exif SubIFD] FlashPix Version - 1.00
        [Exif SubIFD] Color Space - sRGB
        [Exif SubIFD] Exif Image Width - 3200 pixels
        [Exif SubIFD] Exif Image Height - 2400 pixels
        [Exif SubIFD] Padding - [2060 bytes]
        [Exif SubIFD] Unknown tag (0xea1d) - 0
        [Xmp] XMP Value Count - 3
        [Xmp] Rating - 4.0
        [GPS] GPS Latitude Ref - N
        [GPS] GPS Latitude - 37° 51' 42.54"
        [GPS] GPS Longitude Ref - E
        [GPS] GPS Longitude - 112° 34' 5.73"
        [GPS] GPS Altitude Ref - Sea level
        [GPS] GPS Altitude - 0 metres
        [GPS] GPS Time-Stamp - 05:37:33.00 UTC
        [GPS] GPS Processing Method - ASCII
        [GPS] GPS Date Stamp - 2012:03:30
        [Interoperability] Interoperability Version - 1.00
        [Exif IFD0] Make - Xiaomi
        [Exif IFD0] Model - mione_plus
        [Exif IFD0] X Resolution - 72 dots per inch
        [Exif IFD0] Y Resolution - 72 dots per inch
        [Exif IFD0] Resolution Unit - Inch
        [Exif IFD0] YCbCr Positioning - Center of pixel array
        [Exif IFD0] Rating - 4
        [Exif IFD0] Unknown tag (0x4749) - 75
        [Exif IFD0] Padding - [2060 bytes]
        [File] File Name - IMG_20120330_133736.jpg
        [File] File Size - 4374893 bytes
        [File] File Modified Date - Fri Mar 30 16:22:08 CST 2012

        最后,我從程序員的角度勸告大家,在一些不知名的 APP 上,一定不要發(fā)送“原圖(原始圖片)信息”。最好是能夠進(jìn)行壓縮,轉(zhuǎn)碼,擦除照片圖片中的 Exif GPS 等隱私信息。但是也不要怕,對于微信、微博、淘寶等大廠來說,他們常用的 APP 都進(jìn)行了“隱私保護(hù)”。除非通過一些非常規(guī)手段,發(fā)送原圖,壓縮包等方式泄露個人信息。

        感興趣的可以根據(jù)本文中的核心代碼自己動手操作一遍,如果在實(shí)現(xiàn)起來有困難的,需要本文源碼的可以加我微信:codedq,或從這里下載獲取:https://download.csdn.net/download/xmt1139057136/20467387

        瀏覽 83
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            男人的天堂视频精品乱在线 | 色一情一乱一乱91Av | 国产精品丝袜久久久久久久不卡 | 丁香五月成人网 | 国产成人综合久久精品下载第1集 | 国产精品偷窥熟女精品图片 | freehd国产hd | 日日操天天操 | 在线观看无码毛片 | 国产精品偷伦视频免费观看国产 |