獲取圖片的exif信息

由于之前業務需要,需要對圖片進行壓縮,然而圖片壓縮之后,在客戶端顯示,圖片的朝向錯誤了,比如原圖片是這樣的

image.png

但是圖片壓縮之后變成了這樣:

1535686-154031f55ab2d4b7.jpg

那是不能忍啊,最終發現是因為圖片壓縮之后,把圖片的exif信息給丟失了。
根據維基百科解釋,可交換圖像文件格式常被簡稱為Exif
Ex
changeable image file format),是專門為數碼相機的照片設定的,可以記錄數碼照片的屬性信息和拍攝數據。

之后查詢資料,https://drewnoakes.com/code/exif/ 這里提供了可以查詢exif信息的解決方案。

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)。

但是這個jar包并沒有提供寫入的方法,只能獲取到圖片的exif信息,卻沒有重新寫入的方法,依然沒有解決我的煩惱。
我希望在壓縮之前獲取exif信息,在壓縮之后重新寫入,如果有人知曉,希望能夠多多指教。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容