2012-08-28 3 views
10

이미지 데이터가 저장되는 방법에 대해 관심이 있습니다. 예를 들어 Windows에서 이미지를 가져 와서 이미지 (카메라 사용, 날짜 등)에 대한 정보를 얻을 수 있습니다.데이터가 이미지 파일에 저장되는 방법

일반적으로 이미지에는 속성이 정의 된 일부 유형의 헤더 섹션과 다차원 배열을 통해 특정 픽셀의 색상을 지정하는 본문 섹션이 있습니다 (png, jpeg 등이 다를 수 있음).

웹 페이지와 비슷한 소스를 볼 수 있다면 이미지 소스는 어떻게 생겼을까요? 컴퓨터에서 JPEG를 열면 처음 몇 줄은 XML처럼 보입니다.

+4

http://en.wikipedia.org/wiki/Image_file_formats - 학습하려는 특정 형식에 대한 링크를 따라 각 형식 페이지의 '기술 세부 정보'섹션을 확인하십시오. – DGH

+3

이미지는 바이너리입니다. HEX 모드를 지원하는 텍스트 편집기에서 jpeg를 여는 경우 http://snag.gy/X1b7B.jpg와 같이 더 잘 말할 수 있도록 * guts *를 볼 수 있습니다. 또한 대부분의 카메라가 jpeg 파일 헤더에 정보를 저장하는 방법에 대한 자세한 내용은 EXIF를 확인하십시오. http://en.wikipedia.org/wiki/Exchangeable_image_file_format –

+0

바이너리를 말할 때 픽셀 데이터는 바이너리라고 가정하고 있지만 메타 데이터는 어떤 유형의 키 값 쌍에 올바르게 저장되어야합니까? 그리고 나는 XML을 할 수 있다고 가정하고 있습니다. 따라서 파일을 ASCII 텍스트로 해석하려고하면 키/값 쌍 (예 : xml)을 볼 수 있지만 이진 픽셀 데이터는 삐걱 거리는 것처럼 보일 것입니다. –

답변

2

보고있는 XML은 Exchangeable image file format (or Exif)의 일부입니다. 당신은 16 진수 편집기에서 파일을 보면 당신은 다음과 같은 마커를 볼 수 :

모든 JPEG 파일은 이진 값 '0xFFD8'에서 시작 바이너리 값 '해서, 0xffd9'로 끝납니다. JPEG 데이터에는 여러 가지 이진 0xFFXX 데이터가 있으며, 은 "마커"라고하며 이는 JPEG 정보 데이터의 기간을 의미합니다. 0xFFD8은 SOI (Start of image)를 의미하고, 0xFFD9는 EOI (End of image)를 의미합니다.

PNG 파일은 항상 these eight bytes : 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A으로 시작합니다. 그런 다음 JPEG의 메커니즘과 마찬가지로 데이터 섹션을 나타 내기 위해 바이트 마커를 사용합니다. 전체 사양 here을 읽으십시오.

관련 문제