<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5432字,需瀏覽 11分鐘

           ·

          2021-07-26 18:29

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

          成功路上并不擁擠,因?yàn)閳?jiān)持的人不多。

          編輯:業(yè)余草

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

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

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

          代碼很簡(jiǎn)單,幾行就能搞定。首先,我們先從某某美女群里下載美女所發(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)行后就會(huì)獲得圖片的 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:是你注冊(cè)的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)處理過的照片,我們能獲得想到對(duì)的信息。

          {海拔=0 metres, 手機(jī)=Xiaomi, 緯度=24.41046111111111, 型號(hào)=MI MAX, 經(jīng)度=103.41424722222223, 拍攝時(shí)間=2018:12:01 16:37:32, 
          拍攝地點(diǎn)=中國(guó) 云南省 紅河哈尼族彝族自治州 彌勒市 XXX路 XXX號(hào) 溫泉XXXX酒店}
          經(jīng)緯度:24.41046111111111,103.41424722222223
          拍攝時(shí)間:2018:12:01 16:37:32
          手機(jī)型號(hào):Xiaomi MI MAX
          拍攝地點(diǎn):中國(guó) 云南省 紅河哈尼族彝族自治州 彌勒市 XXX路 XXX號(hào) 溫泉XXX酒店
          {"status":0,"result":{"location":{"lng":103.42283328917563,"lat":24.413805252378915},
          "formatted_address":"云南省紅河哈尼族彝族自治州彌勒市XXX路","business":"","addressComponent":
          {"country":"中國(guó)","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ī)型號(hào),拍攝時(shí)間,拍攝地址。。。

          49c9627ceb91c422c3232800f2877a6c.webp

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

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

          • 拍攝日期
          • 拍攝器材(機(jī)身、鏡頭、閃光燈等)
          • 拍攝參數(shù)(快門速度、光圈F值、ISO速度、焦距、測(cè)光模式等)
          • 圖像處理參數(shù)(銳化、對(duì)比度、飽和度、白平衡等)
          • 圖像描述及版權(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 等隱私信息。但是也不要怕,對(duì)于微信、微博、淘寶等大廠來說,他們常用的 APP 都進(jìn)行了“隱私保護(hù)”。除非通過一些非常規(guī)手段,發(fā)送原圖,壓縮包等方式泄露個(gè)人信息。

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

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲专区在线播放 | 做爱 在线免费视频高清 | 欧美A片在线免费观看 | 日韩久久免费视频 | 日本三级91 |