# exif

8개의 포스트

[Android, Java] Exif (ExifInterface)

개요 이미지(JPEG) 크기를 축소하면서 Exif 정보를 유지할 수 있는 방법을 알아보고 있었다. 안타깝게도 (안드로이드에서는) 이미지를 새로 만들면 (크기를 축소한다던가...) Exif가 없어지게된다. 안드로이드에서도 Exif를 다루는 클래스인 ExifInterface (androidx.exifinterface.media) 조차 Exif를 Copy해주는 기능은 없으며, 설상가상으로 대부분의 함수들이 Private로 처리되어 있다. 생성자 파라미터로 파일(Inputstream)로 받기 때문에 이미지 파일과 1:1 응집되어 있다. 어쨌든 방법을 찾기 위해 조사한 내용을 기록한다. ExifInterface 클래스 분석 아.. 코드 8000 줄이다.... Parsing 과정 생성자에서 파일관련 정보를 파라미터로 받는다. 결국 inputstream으로 변환한다. inputstream을 이용하여 loadAttribute 메소드 호출 mAt

2023년 2월 1일
·
0개의 댓글
·
post-thumbnail

사진파일 메타데이터(Metadata) 값 가져오기

사진에 있는 메타데이터를 가져와보자 exif-js 라이브러리를 사용하여 사진 Metadata 가져오기 [npm docs] Exif-js 들어가기에 앞서 exif-js 라이브러리를 사용하는것을 비추천한다. exif-js 는 사진의 메타데이터를 읽는 라이브러리로 사용횟수가 가장 많고 그나마 구글링되는 정보가 있는 라이브러리이다.하지만 5년전에 나온 라이브러리이고 업데이트가 몇년동안 되지않았다.게다가 아이폰의 사진정보만 제공하는듯 하다. 실제로 해당 라이브러리의 이슈탭에 가보면 다른 라이브러리를 사용하라고 추천하고있다. <a href="https://github.com/exif-js/exif-js/issues/261#issuecomment-

2023년 1월 6일
·
0개의 댓글
·
post-thumbnail

파일 이름을 이용해 사진 찍은 날짜 저장하기

(2022-10-20 211315.jpg 파일 이름에는 날짜가 써 있을 때 .. !) 파일 이름에 촬영 일시가 포함되어 있는 사진에 대해 사진의 메타 데이터에 저장할 수 있도록 자동화 시키자. 구글 포토나 네이버 마이박스와 같은 클라우드 서비스에 사진을 저장하면 사진을 촬영한 날짜 별로 정렬하여 구경할 수 있다. 그런데 사진을 카톡으로 주고 받거나, 기본 카메라가 아닌 특정 어플로 촬영하였을 때 종종 사진의 "찍은 날짜" 속성이 없어지기도 한다. 만든 날짜, 수정한 날짜가 있어도 파일에 찍은 날짜가 없으면 마이박스에 업로드했을 때 촬영일시: 날짜 정보 없음이라고 나오면서 업로드한 날짜의 사진으로 분류가 된다. 클라우드에 사진이 날짜 별로 정리되어 구경하는 데 희열을 느끼는 나는 Bulk Fil

2022년 10월 20일
·
0개의 댓글
·

회전된 사진을 원래 방향으로 가져오기

회전된 이미지를 원래 방향으로 가져오기 tip : glide 라이브러를 쓰면 알아서 방향 조정 해준다. 그런데 glide를 쓰면 bitmap이 원본 사이즈가 아닌 imageView 사이즈에 맞춰진 bitmap이 생성된다. 그런데 나는 imageView 사이즈에 맞춰진 작은 bitmap 이 아니라, 원래 사이즈 bitmap이 필요해서 glide를 사용하지 않고 직접 사진 회전을 구현했다.

2022년 8월 28일
·
0개의 댓글
·
post-thumbnail

모바일 사진 업로드 시 90도 회전하는 문제 (feat. Exif 메타데이터)

프로젝트 작업 중, 모바일 아이폰에서 이미지를 업로드하면 90도 회전되어서 업로드 되는 현상이 확인되었다. exif 예시 001 휴대폰으로 찍은 사진의 경우 이미지의 가로, 세로가 변경되서 등록되는 경우가 종종 있다. 사진이 돌아가는 이유는 EXIF(Exchangeable Image File Format)의 회전값(orientation)이 반영되지 않기 때문이다. 휴대폰을 세워서 정상적인 0도 각도에서 사진을 찍으면 문제가 되지 않으나, 스마트폰을 가로 90도 각도로 기울여서 찍은 경우 사진이 90도로 틀어져서 저장된다. 휴대폰은 EXIF 메타정보의 orientation 정보를 읽을 수 있어서 정상적인 사진을 보여주시만, 크롬, 사파리, 파이어팍스 같은 **브라우저

2021년 12월 28일
·
0개의 댓글
·

Image Metadata (이미지 메타데이터)

Image Metadata 핸드폰으로 찍은 사진을 확인해보면 이미지 상세 정보를 확인할 수 있다. 거기에는 사진을 언제, 어디서, 어떻게 찍었는지에 대한 내용이 담겨있다. 심지어 찍을 당시의 카메라 설정값(초점 거리, 셔터 속도 등)까지도 알 수 있다. 이러한 부수적인 정보를 보통 metadata라 표현하는데, 이미지의 metadata는 어떻게 저장되는 것일까? (갤러리에서 사진의 상세 정보를 확인하면 날짜, 위치, 카메라 정보 등을 확인할 수 있다.) 여태 JPEG, PNG, [GIF](https://velog.

2021년 2월 10일
·
1개의 댓글
·

JPEG 이미지 포맷

JPEG JPEG은 이미지를 압축 저장하는 방식 중 하나로 오랫동안 사용된 이미지 압축 포맷이다. Joint Photographic Experts Group의 약자로 이 포맷을 만든 그룹의 이름에서 따왔다. JPEG에 대해 알아보자! 1. Lossy Compression 기본적으로 JPEG 압축 방식은 lossy compression이다. 이 말인 즉슨, 원본 데이터를 보존하지 못한다는 뜻인데 결국 이를 희생해서 압축률을 높인다고 볼 수 있겠다. 이와 관련된 몇 가지 특성들을 간단히 짚고 넘어가자. 저장 용량과 화질(image quality) 간에 trade-off가 있고, 압축률은 설정값에 따라 달라진다. 보통은 10:1의 압축률을 보인다 (with little perceptible loss) 해당 압축 알고리즘은 사진이나 사실적인 그림에 최적화되어 있다. (smooth variation of tone and c

2021년 1월 16일
·
0개의 댓글
·
post-thumbnail

사진(exif)의 GPS 정보를 받아와 카카오 맵으로 띄우기 (only js)

spring 프로젝트 중 고객 요청 사항 중에 사진 업로드를 하면 GPS 정보를 불러와 카카오 맵 으로 지도를 표시 해주는 기능이 있었는데 java로 구현하려니 차라리 전부 js로만 구현할 수 있는 방법이 없을까 생각하다가.. exif-js https://github.com/exif-js/exif-js 자신의 프로젝트에 등록 kakaomap 카카오 맵 api 발급하고 설정할 때 주의 사항 (웹 기준) 앱키는 Javascript키로 적용 설정에서 플랫폼 → 웹 사이트 도메인 설정 → 자신 pc 테스트면 localhost, 추후에 배포하면 배포할 주소 등록 안 해주면 카카오 맵 표시가 안됨 반드시 services 라이브러리 적용 시켜야 함. 나중에 좌표 값 받아서 넣어도 동작을 안 하는 현상이 있습니다. 실제 적용된 코드 고수들은 한 시간에 끝낼걸 다섯 시간 정도 소요되었습니다. 아무리 검색해도 자료가 없고 j

2020년 1월 13일
·
2개의 댓글
·