iOS 사진 업로드(input type=file )의 이미지는 JFIF와 Exif의 두 종류가 있다

<input type="file"> 에서 iOS에서 사진을 업로드 할 때주의를 기울이면 사진 선택에 따라 업로드되는 이미지의 내용이 미묘하게 바뀝니다.



위의 "사진 찍기"와 "포토 라이브러리"에 따라 다릅니다.

무엇이 다른가?



사진의 메타 정보 형식이 다릅니다.
  • 사진 찍기: JFIF
  • 사진 라이브러리: Exif

  • JFIF란?



    사진을 찍기 때문에 업로드되는 파일은 JFIF 형식입니다. JFIF 라는 것은 미국 C-Cube Microsystems 사에 의해 제창된 이미지 메타 정보를 임베드하기 위한 포맷 사양입니다. 특히 SOI (0xFF D8) 직후에 APP0 Marker (0xFF E0)가옵니다. 해상도와 썸네일 정보가 저장됩니다.



    썸네일이 있으면 썸네일 정보가 나오지만 iOS에서 만든 데이터에는 썸네일이 포함되지 않습니다. 그런 다음 APP0 다음에 APP1 Marker 또는 Exif 정보가옵니다.

    즉, '사진 찍기'에서 업로드한 이미지의 회전 정보를 얻으려면 APP0을 건너뛰고 APP1을 찾아야 합니다. Exif의 사양으로서는 SOI의 직후에 APP1 Marker가 올 것이므로, 그것을 믿고 3byte 눈을 직접 읽으면 JFIF였다고 하는 함정에 빠지기 때문에 주의입니다. 나는 그것에 빠졌다…

    (* 또한 위치 정보는 포함되어 있지 않습니다)

    Exif란?



    사진 라이브러리에서 선택하여 업로드하는 파일은 Exif 형식입니다. (* 앱 등에서 Exif 정보를 삭제하거나 하면 당연히 존재하지 않습니다 ) 이미지의 회전 정보나 위치 정보는 Exif 에 포함되어 있으므로, 이용하고 싶은 경우는 Exif 의 APP1 Marker 의 위치를 ​​찾는 것이 좋다 생강.



    Exif를 JavaScript로 구문 분석하는 방법은 다른 기사에서 소개하고 있으므로 참고해 보세요.
  • JavaScript에서 Exif의 Orientation을 구문 분석하여 이미지를 올바르게 표시하는 방법

  • 참고


  • JFIF 버전 1.02
  • 좋은 웹페이지 즐겨찾기