Từ điển

Định hướng ảnh là gì?

Hướng là siêu dữ liệu cho biết phần mềm phải xoay hoặc lật một ảnh hoặc video như thế nào để nó hiển thị theo chiều đứng.

orientation

Hướng ảnh là chiều mà một bức hình quay về phía bạn khi bạn nhìn nó: đúng chiều, lộn ngược, xoay ngang, hoặc phản chiếu. Trong siêu dữ liệu tệp, trường Orientation cho phần mềm biết phải xoay bức ảnh đã lưu như thế nào để nó hiển thị đúng chiều.

Trong nhiếp ảnh, orientation thường có nghĩa là dọc (portrait) hoặc ngang (landscape). Ảnh dọc thì cao hơn rộng, còn ảnh ngang thì rộng hơn cao. Khi bạn chụp ảnh, máy ảnh hoặc điện thoại sẽ lưu cách bạn cầm máy thành dữ liệu orientation trong tệp.

Những tệp nào chứa nó

Thẻ Orientation là một phần của tiêu chuẩn Exif, được lấy từ định dạng TIFF. ID thẻ của nó là 0x0112, hay 274 ở dạng thập phân. Tiêu chuẩn liệt kê nó là thẻ được khuyến nghị cho ảnh chính, và bạn sẽ thấy nó trong các tệp sau:

  • JPG và ảnh TIFF từ máy ảnh và điện thoại
  • Ảnh HEIC, PNG và WebP, tất cả đều có thể chứa một khối dữ liệu Exif

Một tệp HEIC cũng có thể lưu thông tin xoay và phản chiếu như các thuộc tính riêng của container, tên là irot và imir. Một số máy ảnh còn thêm một thẻ riêng. Một số mẫu Canon ghi CameraOrientation, và báo cáo siêu dữ liệu hiển thị nó là Horizontal (normal), Rotate 90 CW hoặc Rotate 270 CW.

Giá trị trông như thế nào

Bên trong tệp, giá trị là một số từ 1 đến 8. Mỗi số cho biết hàng đầu tiên và cột đầu tiên của các điểm ảnh đã lưu nằm ở đâu trên màn hình. Báo cáo siêu dữ liệu thường hiển thị ý nghĩa bằng chữ, trong đó CW nghĩa là xoay theo chiều kim đồng hồ:

  • 1 là Horizontal (normal): ảnh được lưu đúng chiều, nên không có gì thay đổi
  • 3 là Rotate 180: ảnh được lưu lộn ngược
  • 6 là Rotate 90 CW: phần mềm xoay ảnh 90 độ theo chiều kim đồng hồ trước khi hiển thị
  • 8 là Rotate 270 CW: phần mềm xoay ảnh 270 độ theo chiều kim đồng hồ, tức là 90 độ ngược chiều kim đồng hồ
  • 2, 4, 5 và 7 thêm thao tác lật gương, ví dụ Mirror horizontal

Tiêu chuẩn đánh dấu tất cả các số khác là để dành. Vì vậy, một giá trị nằm ngoài khoảng 1 đến 8 sẽ không có ý nghĩa được định nghĩa.

Cách video lưu thông tin xoay

Tệp video xử lý orientation theo cách khác. Một tệp MP4 hoặc MOV lưu một ma trận hiển thị trong phần header của track video. Ma trận này cho trình phát biết phải xoay hoặc lật các khung hình như thế nào trước khi hiển thị.

Các chương trình đọc siêu dữ liệu chuyển ma trận này thành một góc đơn vị tính bằng độ. ExifTool tính góc theo chiều kim đồng hồ, trong khi FFmpeg tính ngược chiều kim đồng hồ trong khoảng từ -180 đến 180. Vì vậy cùng một video có thể hiển thị 90 trong một báo cáo và -90 trong báo cáo khác.

Tại sao điều này quan trọng đối với tệp của bạn

Giá trị Orientation không di chuyển bất kỳ điểm ảnh nào. Các điểm ảnh vẫn giữ nguyên thứ tự mà máy ảnh đã lưu, và thẻ chỉ cho trình xem biết phải hiển thị chúng như thế nào. Trình duyệt web áp dụng thẻ này theo mặc định, nhưng một chương trình bỏ qua nó sẽ hiển thị ảnh dọc nằm ngang.

Đây cũng là lý do chiều rộng và chiều cao có vẻ bị đảo. Image Width và Image Height mô tả các điểm ảnh đã lưu trước khi xoay. Vì vậy, một ảnh dọc với Rotate 90 CW có thể báo cáo chiều rộng lớn hơn chiều cao.

Việc chỉnh sửa có thể gây ra vấn đề thứ hai. Nếu một chương trình xoay các điểm ảnh nhưng giữ nguyên thẻ cũ, ảnh sẽ bị xoay hai lần. Tiêu chuẩn Exif khuyến nghị phần mềm chỉnh sửa đặt Orientation về 1 sau khi xoay ảnh.

Các trang PDF dùng một trường riêng. Page Rotation xoay cả trang theo chiều kim đồng hồ theo từng bước 90 độ khi trang được hiển thị hoặc in.