2012-02-21 18 views

Trả lời

18

Bạn có thể sử dụng

identify -format '%[EXIF:Orientation]' <image.jpg> 

theo identify -format docs (Đó là chút nữa xuống về siêu dữ liệu EXIF).

Hãy thử

identify -verbose <image.jpg> 

Để xem những gì siêu dữ liệu là trong hình ảnh (ví dụ nếu hình ảnh không được chụp với một máy ảnh, thẻ định hướng sẽ không được thiết lập).

Hoặc bạn có thể làm điều gì đó như

identify -format '%wx%h' <image.jpg> 

mang đến cho bạn chiều rộng bằng chiều cao (ví dụ như '800x598', '1936x2592') và sử dụng chúng để xác định xem các hình ảnh là ngay thẳng hay không (không chắc chắn như thế nào đáng tin cậy điều này là mặc dù - đôi khi bạn chụp ảnh chân dung bằng máy ảnh và dữ liệu EXIF ​​sẽ ghi lại định hướng chính xác, nhưng hình ảnh vẫn có thể xuất hiện phong cảnh).

+0

Một số Khán giả hình chăm sóc như thế nào để hiển thị hình ảnh. Để gỡ lỗi đúng cách, hãy xóa siêu dữ liệu exif khỏi hình ảnh và sau đó kiểm tra xem hình ảnh có thực sự được xoay hay không. – saurabheights

+0

'identification -format '% [EXIF: Orientation]'' không hoạt động đối với tôi với các tệp tif của tôi - nó chỉ nhận được một dòng trống. Tôi phải sử dụng 'xác định -verbose ... | grep Định hướng'. Họ sẽ không cho phép tôi lấy lại phiếu bầu cho câu trả lời này, vì vậy tôi để lại bình luận này. 'Phiên bản: ImageMagick 6.7.8-9 2016-05-10 Q16' –

+2

giải pháp đúng cho tôi là' xác định-định dạng "% [định hướng]" ' –

9

Giới thiệu

hình ảnh cửa hàng hơn thông tin chỉ pixel. Rất nhiều thông tin được lưu trữ dưới dạng siêu dữ liệu. Hình ảnh có thể có nhiều siêu dữ liệu trong nhiều thư mục siêu dữ liệu. Một số ví dụ là: Exif, IPTC, JFIF, Ducky, v.v.

Định hướng là một trong các thẻ siêu dữ liệu như vậy trong thư mục Exif. Siêu dữ liệu này thông báo cho các thiết bị hiển thị của bạn về cách định hướng hình ảnh sau khi giải mã dữ liệu pixel. Siêu dữ liệu này có các giá trị hợp lệ từ 1-8. Siêu dữ liệu này là không phải lúc nào cũng hiển thị trong Hình ảnh, vì có thể xóa siêu dữ liệu khỏi hình ảnh. Cũng có thể đặt siêu dữ liệu này thành các giá trị sai như 0, 9, 17, v.v. vì siêu dữ liệu này hỗ trợ các giá trị không dấu 16 bit (0-65535).

Hình ảnh dưới đây cho biết cách hiển thị hình ảnh bị ảnh hưởng khi sử dụng siêu dữ liệu này. nguồn ảnh: https://me94.me/2316.html

Affect of Orientation Metadata

ImageMagick Giải pháp

Tìm nạp các định hướng từ ImageMagick (IM) có thể có nghĩa là hai điều. Bạn có thể (chủ yếu) quan tâm đến việc tìm định hướng có hình ảnh và thứ hai sẽ biết giá trị chính xác của thẻ siêu dữ liệu định hướng (trong những trường hợp hiếm hoi, tôi giả định).

Để biết định hướng, do đó bạn có hai lệnh IM (thay đổi nhỏ về những gì chúng xuất ra).

  1. identify -format '%[EXIF:orientation]' <InputFileName> [Để nhận được giá trị siêu dữ liệu chính xác.]
  2. identify -format '%[orientation]' <InputFileName> [Để nhận được giá trị định hướng hình ảnh, một ánh xạ giá trị exif để có thể đọc được hạn.]

Đối với lệnh 1: -

Đầu ra là giá trị chính xác ngay cả khi giá trị có thể không hợp lệ.Ví dụ: - 0,1,5 hoặc thậm chí 65535. Tuy nhiên, trong sự vắng mặt của siêu dữ liệu này, đầu ra (IMHO mơ hồ đầu ra) là: identify: unknown image property "%[EXIF:orientation]" @ warning/property.c/ InterpretImageProperties/3785.

cho lệnh 2: -

Đầu ra là như sau: -

Undefined - 0 
Undefined - [When no metadata] 
TopLeft - 1 
TopRight - 2 
BottomRight - 3 
BottomLeft - 4 
LeftTop - 5 
RightTop - 6 
RightBottom - 7 
LeftBottom - 8 
Unrecognized - any value between 9-65535, since 
       there is no mapping from value 9-65535 
       to some geometry like 'LeftBottom' 

Thử nghiệm trên Mac và Ubuntu (EC2)

+0

Đây là câu trả lời đúng nhất. Bạn có thể lấy định hướng từ chính hình ảnh hoặc từ các thẻ EXIF. – pyb

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