2010-07-14 38 views
5

Có tối đa lý thuyết về số lượng siêu dữ liệu (EXIF, vv) có thể được kết hợp trong một tệp JPEG không? Tôi muốn phân bổ một bộ đệm được đảm bảo đủ để giữ siêu dữ liệu cho bất kỳ hình ảnh JPEG nào mà không phải phân tích cú pháp đó.Kích thước tối đa của siêu dữ liệu JPEG là gì?

Trả lời

9

Không có tối đa lý thuyết, vì có thể sử dụng nhiều dấu APP nhất định (ví dụ: APP1 được sử dụng cho cả tiêu đề EXIF ​​và khối XMP). Ngoài ra, không có gì để ngăn chặn nhiều khối nhận xét.

Trong thực tế, điều phổ biến hơn nhiều để tạo ra một tiêu đề lớn là cụ thể là điểm đánh dấu APP2 được sử dụng để lưu trữ cấu hình màu ICC cho hình ảnh. Vì một số cấu hình màu phức tạp có thể là vài megabyte, nó sẽ thực sự được chia thành nhiều khối APP2 (vì mỗi khối APP có một giới hạn địa chỉ 16bit).

3

Mỗi vùng dữ liệu APPN có trường độ dài là 2 byte, vì vậy 65536 sẽ giữ trường lớn nhất. Nếu bạn chỉ lo lắng về dữ liệu EXIF, nó sẽ ít hơn một chút.
http://www.fileformat.info/format/jpeg/egff.htm Có tối đa 16 điểm đánh dấu APPN khác nhau trong một tệp. Tôi không nghĩ rằng họ có thể được lặp đi lặp lại, do đó, 16 * 65K nên được tối đa lý thuyết.

+0

Cảm ơn edgman. Có vẻ như một số điểm đánh dấu có hiệu quả cố định với độ dài nhỏ hơn 64K, do đó giới hạn lý thuyết thấp hơn có thể được tính toán nhưng tính toán sơ bộ của bạn đủ tốt cho mục đích của tôi. – darrinm

+1

Câu trả lời của Grayson Lang là câu trả lời đúng. Không có gì để ngăn chặn nhiều khối của cùng một điểm đánh dấu. –

+0

trên Linux, các công cụ wrjpgcom và rdjpgcom cực kỳ hữu ích ... đây là nơi tôi đã kết thúc đẩy rất nhiều dữ liệu văn bản. – phyatt

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