因爲以前業務須要,須要對圖片進行壓縮,然而圖片壓縮以後,在客戶端顯示,圖片的朝向錯誤了,好比原圖片是這樣的java
可是圖片壓縮以後變成了這樣:ide
那是不能忍啊,最終發現是由於圖片壓縮以後,把圖片的exif信息給丟失了。
根據維基百科解釋,可交換圖像文件格式常被簡稱爲**Exif
(Exchangeable image f**ile format),是專門爲數碼相機的照片設定的,能夠記錄數碼照片的屬性信息和拍攝數據。spa
以後查詢資料,https://drewnoakes.com/code/e... 這裏提供了能夠查詢exif信息的解決方案。code
Metadata metadata = JpegMetadataReader.readMetadata(photo); Directory directory = metadata .getFirstDirectoryOfType(ExifIFD0Directory.class); for (Tag tag : directory.getTags()) { System.out.format("[%s] - %s = %s", directory.getName(), tag.getTagName(), tag.getDescription()); }
經過這樣能夠獲取到圖片的朝向信息,好比 [Exif IFD0] - Orientation = Top, left side (Horizontal / normal)。orm
可是這個jar包並無提供寫入的方法,只能獲取到圖片的exif信息,卻沒有從新寫入的方法,依然沒有解決個人煩惱。
我但願在壓縮以前獲取exif信息,在壓縮以後從新寫入,若是有人知曉,但願可以多多指教。圖片