EXIF (Exchangeable Image File Format) là một khối siêu dữ liệu chụp chứa các thông tin như phơi sáng, ống kính, dấu thời gian và thậm chí cả GPS, được máy ảnh và điện thoại nhúng vào tệp hình ảnh. Nó sử dụng một hệ thống thẻ kiểu TIFF được đóng gói bên trong các định dạng như JPEG và TIFF. Nó rất cần thiết cho khả năng tìm kiếm, sắp xếp và tự động hóa trong các thư viện ảnh, nhưng việc chia sẻ bất cẩn có thể dẫn đến rò rỉ dữ liệu không mong muốn (ExifTool và Exiv2 giúp dễ dàng kiểm tra điều này).
Ở cấp độ thấp, EXIF sử dụng lại cấu trúc Thư mục tệp hình ảnh (IFD) của định dạng TIFF và, trong JPEG, nằm bên trong điểm đánh dấu APP1 (0xFFE1), lồng một tệp TIFF nhỏ một cách hiệu quả vào bên trong một vùng chứa JPEG (tổng quan về JFIF; cổng thông số kỹ thuật của CIPA). Đặc tả chính thức — CIPA DC-008 (EXIF), hiện ở phiên bản 3.x — ghi lại bố cục IFD, các loại thẻ và các ràng buộc (CIPA DC-008; tóm tắt đặc tả). EXIF xác định một IFD phụ GPS chuyên dụng (thẻ 0x8825) và một IFD có khả năng tương tác (0xA005) (bảng thẻ Exif).
Chi tiết triển khai rất quan trọng. Các tệp JPEG điển hình bắt đầu bằng một đoạn JFIF APP0, theo sau là EXIF trong APP1. Các trình đọc cũ hơn mong đợi JFIF trước, trong khi các thư viện hiện đại phân tích cả hai mà không gặp vấn đề gì (ghi chú đoạn APP). Trong thực tế, các trình phân tích cú pháp đôi khi giả định thứ tự APP hoặc giới hạn kích thước mà thông số kỹ thuật không yêu cầu, đó là lý do tại sao các nhà phát triển công cụ ghi lại các hành vi cụ thể và các trường hợp đặc biệt (hướng dẫn siêu dữ liệu Exiv2; tài liệu ExifTool).
EXIF không chỉ giới hạn ở JPEG/TIFF. Hệ sinh thái PNG đã tiêu chuẩn hóa đoạn eXIf để mang dữ liệu EXIF trong các tệp PNG (hỗ trợ ngày càng tăng, và thứ tự đoạn so với IDAT có thể quan trọng trong một số triển khai). WebP, một định dạng dựa trên RIFF, chứa EXIF, XMP và ICC trong các đoạn chuyên dụng (vùng chứa WebP RIFF; libwebp). Trên các nền tảng của Apple, Image I/O bảo toàn dữ liệu EXIF khi chuyển đổi sang HEIC/HEIF, cùng với dữ liệu XMP và thông tin nhà sản xuất (kCGImagePropertyExifDictionary).
Nếu bạn đã từng tự hỏi làm thế nào các ứng dụng suy ra cài đặt máy ảnh, bản đồ thẻ EXIF là câu trả lời: Make, Model,FNumber, ExposureTime, ISOSpeedRatings, FocalLength, MeteringMode, và nhiều hơn nữa nằm trong các IFD phụ chính và EXIF (thẻ Exif; thẻ Exiv2). Apple hiển thị chúng thông qua các hằng số Image I/O như ExifFNumber và GPSDictionary. Trên Android, AndroidX ExifInterface đọc và ghi dữ liệu EXIF trên JPEG, PNG, WebP và HEIF.
Định hướng hình ảnh đáng được đề cập đặc biệt. Hầu hết các thiết bị lưu trữ pixel “nguyên trạng” và ghi lại một thẻ cho người xem biết cách xoay khi hiển thị. Đó là thẻ 274 (Orientation) với các giá trị như 1 (bình thường), 6 (90° theo chiều kim đồng hồ), 3 (180°), 8 (270°). Việc không tuân thủ hoặc cập nhật không chính xác thẻ này sẽ dẫn đến ảnh bị xoay, hình thu nhỏ không khớp và lỗi học máy ở các giai đoạn xử lý tiếp theo (thẻ định hướng;hướng dẫn thực tế). Trong các quy trình xử lý, việc chuẩn hóa thường được áp dụng bằng cách xoay pixel vật lý và đặt Orientation=1(ExifTool).
Việc chấm công phức tạp hơn vẻ ngoài của nó. Các thẻ lịch sử như DateTimeOriginal thiếu múi giờ, điều này làm cho các cảnh quay xuyên biên giới trở nên mơ hồ. Các thẻ mới hơn thêm thông tin về múi giờ — ví dụ: OffsetTimeOriginal — để phần mềm có thể ghi lại DateTimeOriginal cộng với một độ lệch UTC (ví dụ: -07:00) để sắp xếp và tương quan địa lý chính xác (thẻ OffsetTime*;tổng quan về thẻ).
EXIF cùng tồn tại — và đôi khi chồng chéo — với Siêu dữ liệu ảnh IPTC (tiêu đề, người tạo, quyền, chủ đề) và XMP, khuôn khổ dựa trên RDF của Adobe được tiêu chuẩn hóa thành ISO 16684-1. Trong thực tế, phần mềm được triển khai đúng cách sẽ dung hòa dữ liệu EXIF do máy ảnh tạo ra với dữ liệu IPTC/XMP do người dùng nhập vào mà không loại bỏ một trong hai (hướng dẫn IPTC;LoC trên XMP;LoC trên EXIF).
Các vấn đề về quyền riêng tư khiến EXIF trở thành một chủ đề gây tranh cãi. Gắn thẻ địa lý và số sê-ri thiết bị đã tiết lộ các vị trí nhạy cảm nhiều hơn một lần; một ví dụ điển hình là bức ảnh Vice năm 2012 của John McAfee, trong đó tọa độ GPS EXIF được cho là đã tiết lộ tung tích của anh ta (Wired;The Guardian). Nhiều nền tảng xã hội xóa hầu hết dữ liệu EXIF khi tải lên, nhưng các triển khai khác nhau và thay đổi theo thời gian. Bạn nên xác minh điều này bằng cách tải xuống các bài đăng của riêng bạn và kiểm tra chúng bằng một công cụ thích hợp (trợ giúp về phương tiện truyền thông của Twitter;trợ giúp của Facebook;trợ giúp của Instagram).
Các nhà nghiên cứu bảo mật cũng theo dõi chặt chẽ các trình phân tích cú pháp EXIF. Các lỗ hổng trong các thư viện được sử dụng rộng rãi (ví dụ: libexif) đã bao gồm tràn bộ đệm và đọc ngoài giới hạn, được kích hoạt bởi các thẻ bị định dạng sai. Những thẻ này dễ dàng tạo ra vì EXIF là một tệp nhị phân có cấu trúc ở một nơi có thể dự đoán được (cảnh báo;tìm kiếm NVD). Điều quan trọng là phải cập nhật các thư viện siêu dữ liệu và xử lý hình ảnh trong một môi trường biệt lập (sandbox) nếu chúng đến từ các nguồn không đáng tin cậy.
Được sử dụng một cách chu đáo, EXIF là một yếu tố quan trọng cung cấp năng lượng cho các danh mục ảnh, quy trình công việc về quyền và các đường ống thị giác máy tính. Được sử dụng một cách ngây thơ, nó trở thành một dấu vết kỹ thuật số mà bạn có thể không muốn chia sẻ. Tin tốt: hệ sinh thái — thông số kỹ thuật, API hệ điều hành và công cụ — cung cấp cho bạn quyền kiểm soát bạn cần (CIPA EXIF;ExifTool;Exiv2;IPTC;XMP).
Dữ liệu EXIF (Exchangeable Image File Format) là một tập hợp siêu dữ liệu về một bức ảnh, chẳng hạn như cài đặt máy ảnh, ngày và giờ chụp, và nếu GPS được bật, cả vị trí.
Hầu hết các trình xem và chỉnh sửa hình ảnh (ví dụ: Adobe Photoshop, Windows Photo Viewer) đều cho phép xem dữ liệu EXIF. Thông thường, chỉ cần mở bảng thuộc tính hoặc thông tin của tệp.
Có, dữ liệu EXIF có thể được chỉnh sửa bằng phần mềm chuyên dụng như Adobe Photoshop, Lightroom hoặc các công cụ trực tuyến dễ sử dụng, cho phép bạn sửa đổi hoặc xóa các trường siêu dữ liệu cụ thể.
Có. Nếu GPS được bật, dữ liệu vị trí được lưu trữ trong siêu dữ liệu EXIF có thể tiết lộ thông tin địa lý nhạy cảm. Do đó, bạn nên xóa hoặc ẩn danh dữ liệu này trước khi chia sẻ ảnh.
Nhiều chương trình cho phép bạn loại bỏ dữ liệu EXIF. Quá trình này thường được gọi là 'loại bỏ' siêu dữ liệu. Cũng có các công cụ trực tuyến cung cấp chức năng này.
Hầu hết các nền tảng mạng xã hội như Facebook, Instagram và Twitter tự động xóa dữ liệu EXIF khỏi hình ảnh để bảo vệ quyền riêng tư của người dùng.
Dữ liệu EXIF có thể bao gồm, trong số những thứ khác, kiểu máy ảnh, ngày và giờ chụp, độ dài tiêu cự, thời gian phơi sáng, khẩu độ, cài đặt ISO, cân bằng trắng và vị trí GPS.
Đối với các nhiếp ảnh gia, dữ liệu EXIF là một hướng dẫn quý giá để hiểu các cài đặt chính xác được sử dụng cho một bức ảnh. Thông tin này giúp cải thiện kỹ thuật và tái tạo các điều kiện tương tự trong tương lai.
Không, chỉ những hình ảnh được chụp bằng các thiết bị hỗ trợ siêu dữ liệu EXIF, chẳng hạn như máy ảnh kỹ thuật số và điện thoại thông minh, mới chứa dữ liệu này.
Có, dữ liệu EXIF tuân theo tiêu chuẩn do Hiệp hội Phát triển Công nghiệp Điện tử Nhật Bản (JEIDA) thiết lập. Tuy nhiên, một số nhà sản xuất có thể bao gồm thông tin độc quyền bổ sung.
Định dạng PBM (Portable Bitmap) là một trong những định dạng tệp đồ họa đơn giản và sớm nhất được sử dụng để lưu trữ hình ảnh đơn sắc. Nó là một phần của bộ Netpbm, cũng bao gồm PGM (Portable GrayMap) cho hình ảnh thang độ xám và PPM (Portable PixMap) cho hình ảnh màu. Định dạng PBM được thiết kế để cực kỳ dễ đọc và ghi trong chương trình, đồng thời rõ ràng và không gây hiểu lầm. Nó không được thiết kế để trở thành một định dạng độc lập, mà là một mẫu số chung thấp nhất để chuyển đổi giữa các định dạng hình ảnh khác nhau.
Định dạng PBM chỉ hỗ trợ hình ảnh đen trắng (1 bit). Mỗi pixel trong hình ảnh được biểu diễn bằng một bit duy nhất - 0 cho màu trắng và 1 cho màu đen. Tính đơn giản của định dạng giúp dễ dàng thao tác bằng các công cụ chỉnh sửa văn bản cơ bản hoặc ngôn ngữ lập trình mà không cần đến các thư viện xử lý hình ảnh chuyên dụng. Tuy nhiên, tính đơn giản này cũng có nghĩa là các tệp PBM có thể lớn hơn các định dạng tinh vi hơn như JPEG hoặc PNG, sử dụng các thuật toán nén để giảm kích thước tệp.
Có hai biến thể của định dạng PBM: định dạng ASCII (thuần túy), được gọi là P1 và định dạng nhị phân (thô), được gọi là P4. Định dạng ASCII có thể đọc được bằng con người và có thể được tạo hoặc chỉnh sửa bằng trình soạn thảo văn bản đơn giản. Định dạng nhị phân không thể đọc được bằng con người nhưng tiết kiệm không gian hơn và nhanh hơn để các chương trình đọc và ghi. Mặc dù có sự khác biệt về lưu trữ, cả hai định dạng đều biểu diễn cùng một loại dữ liệu hình ảnh và có thể chuyển đổi giữa nhau mà không mất thông tin.
Cấu trúc của tệp PBM ở định dạng ASCII bắt đầu bằng số ma thuật hai byte xác định loại tệp. Đối với định dạng PBM ASCII, đây là 'P1'. Tiếp theo số ma thuật là khoảng trắng (khoảng trắng, TAB, CR, LF), sau đó là thông số kỹ thuật về chiều rộng, là số cột trong hình ảnh, theo sau là khoảng trắng, sau đó là thông số kỹ thuật về chiều cao, là số hàng trong hình ảnh. Sau thông số kỹ thuật về chiều cao, có thêm khoảng trắng, sau đó là dữ liệu pixel bắt đầu.
Dữ liệu pixel trong tệp PBM ASCII bao gồm một loạt các '0' và '1', trong đó mỗi '0' biểu diễn một pixel màu trắng và mỗi '1' biểu diễn một pixel màu đen. Các pixel được sắp xếp thành các hàng, với mỗi hàng pixel trên một dòng mới. Khoảng trắng được phép ở bất kỳ đâu trong dữ liệu pixel ngoại trừ trong chuỗi hai ký tự (không được phép giữa hai ký tự của chuỗi). Kết thúc tệp đạt được sau khi đọc width*height bit.
Ngược lại, định dạng PBM nhị phân bắt đầu bằng số ma thuật 'P4' thay vì 'P1'. Sau số ma thuật, định dạng của tệp giống như phiên bản ASCII cho đến khi dữ liệu pixel bắt đầu. Dữ liệu pixel nhị phân được đóng gói thành các byte, với bit có giá trị cao nhất (MSB) của mỗi byte biểu diễn pixel ngoài cùng bên trái và mỗi hàng pixel được đệm khi cần thiết để điền vào byte cuối cùng. Các bit đệm không có ý nghĩa và các giá trị của chúng bị bỏ qua.
Định dạng nhị phân tiết kiệm không gian hơn vì nó sử dụng một byte đầy đủ để biểu diễn tám pixel, trái ngược với định dạng ASCII sử dụng ít nhất tám byte (một ký tự cho mỗi pixel cộng với khoảng trắng). Tuy nhiên, định dạng nhị phân không thể đọc được bằng con người và yêu cầu một chương trình hiểu định dạng PBM để hiển thị hoặc chỉnh sửa hình ảnh.
Việc tạo tệp PBM theo chương trình tương đối đơn giản. Trong một ngôn ngữ lập trình như C, người ta sẽ mở một tệp ở chế độ ghi, xuất số ma thuật thích hợp, ghi chiều rộng và chiều cao dưới dạng số ASCII được phân tách bằng khoảng trắng, sau đó xuất dữ liệu pixel. Đối với PBM ASCII, dữ liệu pixel có thể được ghi dưới dạng một loạt các '0' và '1' với các ngắt dòng thích hợp. Đối với PBM nhị phân, dữ liệu pixel phải được đóng gói thành các byte và được ghi vào tệp ở chế độ nhị phân.
Đọc tệp PBM cũng rất đơn giản. Một chương trình sẽ đọc số ma thuật để xác định định dạng, bỏ qua khoảng trắng, đọc chiều rộng và chiều cao, bỏ qua thêm khoảng trắng, sau đó đọc dữ liệu pixel. Đối với PBM ASCII, chương trình có thể đọc các ký tự từng ký tự một và diễn giải chúng thành các giá trị pixel. Đối với PBM nhị phân, chương trình phải đọc các byte và giải nén chúng thành các bit riêng lẻ để lấy các giá trị pixel.
Định dạng PBM không hỗ trợ bất kỳ hình thức nén hoặc mã hóa nào, điều này có nghĩa là kích thước tệp tỷ lệ thuận với số pixel trong hình ảnh. Điều này có thể dẫn đến các tệp rất lớn đối với hình ảnh có độ phân giải cao. Tuy nhiên, tính đơn giản của định dạng khiến nó trở nên lý tưởng để tìm hiểu về xử lý hình ảnh, để sử dụng trong các tình huống mà độ trung thực của hình ảnh quan trọng hơn kích thước tệp hoặc để sử dụng làm định dạng trung gian trong các quy trình chuyển đổi hình ảnh.
Một trong những ưu điểm của định dạng PBM là tính đơn giản và dễ dàng thao tác. Ví dụ: để đảo ngược hình ảnh PBM (biến tất cả các pixel màu đen thành màu trắng và ngược lại), người ta chỉ cần thay thế tất cả các '0' bằng '1' và tất cả các '1' bằng '0' trong dữ liệu pixel. Điều này có thể được thực hiện bằng một tập lệnh hoặc chương trình xử lý văn bản đơn giản. Tương tự, các thao tác hình ảnh cơ bản khác như xoay hoặc phản chiếu có thể được thực hiện bằng các thuật toán đơn giản.
Mặc dù đơn giản, định dạng PBM không được sử dụng rộng rãi để lưu trữ hoặc trao đổi hình ảnh chung. Điều này chủ yếu là do nó không có khả năng nén, khiến nó không hiệu quả để lưu trữ hình ảnh lớn hoặc để sử dụng trên internet, nơi băng thông có thể là một mối quan tâm. Các định dạng hiện đại hơn như JPEG, PNG và GIF cung cấp nhiều hình thức nén khác nhau và phù hợp hơn cho các mục đích này. Tuy nhiên, định dạng PBM vẫn được sử dụng trong một số bối cảnh, đặc biệt là đối với đồ họa đơn giản trong phát triển phần mềm và như một công cụ giảng dạy cho các khái niệm xử lý hình ảnh.
Bộ Netpbm, bao gồm định dạng PBM, cung cấp một bộ sưu tập các công cụ để thao tác các tệp PBM, PGM và PPM. Các công cụ này cho phép chuyển đổi giữa các định dạng Netpbm và các định dạng hình ảnh phổ biến khác, cũng như các thao tác xử lý hình ảnh cơ bản như thay đổi kích thước, cắt và thao tác màu. Bộ công cụ được thiết kế để dễ dàng mở rộng, với giao diện đơn giản để thêm chức năng mới.
Tóm lại, định dạng hình ảnh PBM là một định dạng tệp đơn giản, không rườm rà để lưu trữ hình ảnh bitmap đơn sắc. Tính đơn giản của nó giúp dễ hiểu và thao tác, có thể có lợi cho mục đích giáo dục hoặc cho các tác vụ xử lý hình ảnh đơn giản. Mặc dù không phù hợp với tất cả các ứng dụng do thiếu khả năng nén và dẫn đến kích thước tệp lớn, nhưng nó vẫn là một định dạng hữu ích trong các bối cảnh cụ thể mà các điểm mạnh của nó có lợi nhất. Định dạng PBM, cùng với phần còn lại của bộ Netpbm, tiếp tục là một công cụ có giá trị cho những người làm việc với xử lý hình ảnh cơ bản và chuyển đổi định dạng.
Bộ chuyển đổi này chạy hoàn toàn trong trình duyệt của bạn. Khi bạn chọn một tệp, nó sẽ được đọc vào bộ nhớ và chuyển đổi sang định dạng đã chọn. Sau đó, bạn có thể tải xuống tệp đã chuyển đổi.
Việc chuyển đổi bắt đầu ngay lập tức và hầu hết các tệp được chuyển đổi trong vòng chưa đầy một giây. Các tệp lớn hơn có thể mất nhiều thời gian hơn.
Các tệp của bạn không bao giờ được tải lên máy chủ của chúng tôi. Chúng được chuyển đổi trong trình duyệt của bạn và sau đó tệp đã chuyển đổi sẽ được tải xuống. Chúng tôi không bao giờ thấy các tệp của bạn.
Chúng tôi hỗ trợ chuyển đổi giữa tất cả các định dạng hình ảnh, bao gồm JPEG, PNG, GIF, WebP, SVG, BMP, TIFF, v.v.
Bộ chuyển đổi này hoàn toàn miễn phí và sẽ luôn miễn phí. Bởi vì nó chạy trong trình duyệt của bạn, chúng tôi không phải trả tiền cho máy chủ, vì vậy chúng tôi không cần tính phí bạn.
Đúng! Bạn có thể chuyển đổi bao nhiêu tệp tùy thích cùng một lúc. Chỉ cần chọn nhiều tệp khi bạn thêm chúng.