2012-08-28 73 views
10

Tôi quan tâm đến mức độ thấp như thế nào dữ liệu hình ảnh được lưu trữ. Ví dụ, người ta có thể kéo lên một hình ảnh trong Windows và nhận được thông tin về hình ảnh (Camera được sử dụng, ngày vv).Dữ liệu được lưu trữ trong một tệp hình ảnh

Ở mức độ chung (tôi chắc chắn png, jpeg v.v ...) có hình ảnh nào có phần tiêu đề trong đó thuộc tính được xác định không và có thể là phần nội dung chỉ định màu cho pixel cụ thể qua mảng đa chiều?

Nguồn ảnh trông như thế nào nếu bạn có thể xem nguồn tương tự như một trang web? Nếu tôi mở một JPEG trên máy tính của tôi, một vài dòng đầu tiên trông giống như XML.

+4

http://en.wikipedia.org/wiki/Image_file_formats - hãy làm theo các liên kết trong đó tới bất kỳ định dạng cụ thể nào bạn muốn tìm hiểu và xem phần "chi tiết kỹ thuật" trên trang của từng định dạng. – DGH

+3

Hình ảnh là nhị phân. Nếu bạn mở một jpeg trong một trình soạn thảo văn bản có hỗ trợ chế độ HEX, bạn sẽ có thể thấy * ruột * của nó để nói tốt hơn như vậy http://snag.gy/X1b7B.jpg. Ngoài ra, hãy xem EXIF ​​để biết chi tiết về cách hầu hết các máy ảnh lưu trữ thông tin trong tiêu đề của các tệp jpeg chẳng hạn. http://en.wikipedia.org/wiki/Exchangeable_image_file_format –

+0

Khi bạn nói nhị phân, dữ liệu pixel là nhị phân mà tôi giả sử, nhưng dữ liệu meta phải được lưu trữ trong một số loại cặp giá trị chính phải không? Và tôi giả định rằng có thể xml, vì vậy nếu cố gắng diễn giải tệp dưới dạng văn bản ascii, bạn sẽ thấy cặp khóa/giá trị (ví dụ xml), nhưng dữ liệu pixel nhị phân sẽ trông giống như jibberish. –

Trả lời

2

XML bạn đang thấy là một phần của Exchangeable image file format (or Exif). Nếu bạn nhìn vào các tập tin trong một trình soạn thảo Hex bạn sẽ thấy các dấu hiệu như thế này:

tập tin JPEG Mỗi bắt đầu từ giá trị nhị phân '0xFFD8', kết thúc bằng giá trị nhị phân '0xFFD9'. Có một số dữ liệu 0xFFXX nhị phân trong dữ liệu JPEG, chúng được gọi là "Marker", và nó có nghĩa là thời gian của dữ liệu thông tin JPEG . 0xFFD8 nghĩa là SOI (Bắt đầu hình ảnh), 0xFFD9 nghĩa là EOI (Kết thúc hình ảnh).

Tệp PNG sẽ luôn bắt đầu bằng these eight bytes: 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A. Sau đó nó có một cơ chế tương tự như JPEG khi sử dụng các điểm đánh dấu byte để chỉ ra các phần dữ liệu. Đọc thông số đầy đủ here.

Các vấn đề liên quan