Trong một tệp TIFF, metadata chính là tệp
Mọi định dạng khác đều gắn metadata vào từ bên ngoài: JPEG đặt một khối TIFF vào trong một đoạn APP1, HEIC cất nó thành một mục, PNG thì bịa ra các khối. TIFF không có đoạn nào vì nó chẳng cần — tệp mở đầu bằng phần đầu 8 byte trỏ tới một Thư mục tệp ảnh, và thư mục ấy vừa là danh sách thẻ vừa là chỉ mục tới các điểm ảnh. Khi bạn đọc EXIF ở bất cứ đâu khác, thứ bạn đọc là một mảnh TIFF đã được chép sang một vỏ chứa khác.
Thứ tự byte được khai báo, chứ không phải đoán
Một tệp TIFF mở đầu bằng II hoặc MM — Intel hay Motorola, byte nhỏ trước hay byte lớn trước — rồi tới số 42 viết theo đúng thứ tự đó như một phép tự kiểm. Mọi thứ đến sau, từng vị trí và từng số nguyên, đều được đọc theo lối ấy. Vì thế cùng một thẻ có thể được cất theo hai cách sắp byte khác nhau, và vì thế một tệp TIFF bị cắt cụt hỏng triệt để đến vậy: mất phần đầu là không còn cách nào hiểu nổi dù chỉ một vị trí trong tệp.
Một tệp, nhiều thư mục
Các IFD nối nhau thành chuỗi: mỗi thư mục kết thúc bằng vị trí của thư mục kế, hoặc bằng số không. Bản quét nhiều trang dùng chuỗi ấy cho các trang của nó, còn ảnh thu nhỏ thì theo lệ nằm ở thư mục thứ hai. EXIF và vị trí là các thư mục con treo vào thư mục đầu qua các thẻ con trỏ. Vậy nên bảng thẻ bên dưới có thể đang cho bạn xem trang đầu trong nhiều trang — và một tệp DNG thô, vốn là TIFF kèm thẻ thêm, cũng cùng hình hài ấy.
TIFF cất mọi thứ ở đâu
- II / MM
- Thứ tự byte, ở hai byte đầu. Mọi thứ khác đều đọc qua nó.
- IFD0
- Thư mục chính: thẻ ảnh, hãng, mẫu máy, hướng ảnh, độ phân giải.
- IFD1
- Thư mục thứ hai, theo lệ là ảnh thu nhỏ hoặc trang kế.
- ExifIFD
- Phơi sáng, ống kính và thời điểm chụp. Một thư mục con, tới được qua thẻ con trỏ.
- GPSIFD
- Vĩ độ, kinh độ, độ cao. Một thư mục con khác.
- StripOffsets
- Các điểm ảnh nằm ở đâu. Một thẻ như mọi thẻ khác — và đó chính là điều đáng nói.
Câu hỏi về TIFF
Vì sao tôi đọc được thẻ trong khi trình duyệt không hiện được ảnh?Mở
Vì đọc thẻ nghĩa là đi dọc các thư mục và vị trí, tức là chuyện tính toán, còn hiện ảnh thì cần bộ giải mã cho kiểu nén mà tệp đó dùng. Không trình duyệt phổ thông nào kèm bộ giải mã TIFF. Phần xem trước sẽ báo là không có; bảng thẻ thì đầy đủ.
DNG có phải là TIFF không?Mở
Về cấu trúc thì gần như đúng vậy. DNG dựng trên TIFF/EP, nên dùng cùng phần đầu, cùng các thư mục và cùng các mục thẻ 12 byte, kèm thêm các thẻ cho dữ liệu cảm biến thô. Những gì bạn học ở đây về IFD đều áp dụng được cho nó.
Tệp TIFF của tôi có 40 trang. Tôi đang xem trang nào?Mở
Trang đầu. Các thư mục là một danh sách nối và không gian này đọc cái mà phần đầu trỏ tới, tức trang một. Các trang sau mang thẻ riêng của chúng và không được hiện ra.
Một tệp TIFF được làm sạch bằng cách nào?Mở
Bằng lối làm sạch qua mã hóa lại, tức xuất ra một tệp JPEG. Vì thẻ của TIFF và chỉ mục điểm ảnh của nó nằm trong cùng một cấu trúc, không có cách nào bỏ thẻ đi mà vẫn giữ tệp là TIFF trong trình duyệt — mà dù sao cũng chẳng trình duyệt nào ghi được TIFF.
Làm được những gì
- Xóa dữ liệu EXIF
- Thả một tấm ảnh vào rồi tải về bản đã bỏ metadata nhúng. Với JPEG, đoạn EXIF rơi ra mà không đụng tới điểm ảnh; HEIC, PNG, WebP và phần còn lại thì được mã hóa lại. Không có gì được tải lên máy chủ.
- Gỡ vị trí
- Xem tọa độ mà một tấm ảnh đang mang, rồi tải về bản không có chúng. JPEG mất các thẻ vị trí và giữ lại mọi thứ còn lại. Không có gì được tải lên máy chủ.
- Sửa EXIF của JPEG
- Đổi tiêu đề, tác giả, mô tả, bản quyền, phần mềm và thời điểm chụp của một tệp JPEG, rồi tải bản đã sửa về. Chạy ngay trên máy; tệp gốc của bạn không bao giờ bị sửa.
- Trình xem XMP, IPTC và ICC
- Đọc mọi nhóm metadata mà một tệp mang theo — EXIF, XMP, IPTC, ICC, ghi chú của hãng — chia nhóm sẵn và xuất được ra JSON. Dành cho kiểm định tài nguyên, pháp chứng và dò lỗi một quy trình. Không có gì được tải lên máy chủ.
- Mở nhiều tấm ảnh
- Mở tới năm mươi tấm ảnh, xem tấm nào mang vị trí, rồi lấy cả cụm ra dưới dạng bảng tính. Không có gì được tải lên, và bản gốc không bao giờ bị ghi đè.