由于之前業(yè)務(wù)需要,需要對圖片進行壓縮,然而圖片壓縮之后睦擂,在客戶端顯示,圖片的朝向錯誤了募狂,比如原圖片是這樣的
image.png
但是圖片壓縮之后變成了這樣:
1535686-154031f55ab2d4b7.jpg
那是不能忍啊,最終發(fā)現(xiàn)是因為圖片壓縮之后角雷,把圖片的exif信息給丟失了祸穷。
根據(jù)維基百科解釋,可交換圖像文件格式常被簡稱為Exif
(Exchangeable image file format)勺三,是專門為數(shù)碼相機的照片設(shè)定的雷滚,可以記錄數(shù)碼照片的屬性信息和拍攝數(shù)據(jù)。
之后查詢資料檩咱,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信息,在壓縮之后重新寫入,如果有人知曉充甚,希望能夠多多指教以政。