Câu hỏi Làm thế nào để có được thông tin về một hình ảnh (hình ảnh) từ dòng lệnh Linux?


Đang làm việc trên một ứng dụng web và hiện đang di chuyển một số nội dung từ một ứng dụng cũ, nhưng tôi ghét rằng tôi phải mở trình chỉnh sửa hình ảnh để lấy một số thông tin về hình ảnh mà tôi đang di chuyển. Những thứ như kích thước hình ảnh.

Có một công cụ dòng lệnh tôi có thể sử dụng cho các tác vụ như vậy trong Linux không?


210
2018-04-26 09:28


gốc




Các câu trả lời:


Đối với một số định dạng hình ảnh, bạn chỉ có thể sử dụng file chỉ huy:

$ file MyPNG.png 
MyPNG.png: PNG image, 681 x 345, 8-bit/color RGB, non-interlaced

Không phải tất cả các định dạng hình ảnh đều báo cáo kích thước (JPEG đáng chú ý nhất là không):

$ file MyJpeg.jpg 
MyJpeg.jpg: JPEG image data, JFIF standard 1.01

Đối với những người bạn sẽ phải sử dụng một cái gì đó phức tạp hơn, như:

$ convert MyJpeg.jpg -print "Size: %wx%h\n" /dev/null
Size: 380x380

Các convert lệnh là một phần của gói ImageMagick.


209
2018-04-26 09:40



Chỉ có thể là tôi nhưng có vẻ như imagemagick đang thực sự tải dữ liệu hình ảnh ở đó vì nó chạy khá chậm. imo identify nên được sử dụng thay thế - jozxyqk
Oh, /dev/null là một đối số hehe - Aquarius Power
FWIW đây là những gì tôi sử dụng để có được datetime sáng tạo của một bức ảnh: identify -format "%[EXIF:DateTimeOriginal]\n" foobar.jpg - kralyk
Phiên bản hiện tại của file hỗ trợ hiển thị kích thước của JPEG mà không cần tham số bổ sung: $ file foo.jpg trả về foo.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 72x72, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=1], baseline, precision 8, 120x120, frames 3 - Cœur


Cách tốt nhất để có được thông tin này là sử dụng identify chỉ huy:

$ identify image.png

hoặc chỉ các thuộc tính kích thước

$ identify -format "%wx%h" photo.jpg

Nó là một phần của ImageMagick, mà bạn có thể cài đặt trên Ubuntu như sau:

$ sudo apt-get install imagemagick

181
2017-12-23 14:16



Các thông số kỹ thuật cho chuỗi định dạng có thể được tìm thấy trong Hướng dẫn sử dụng GraphicsMagick. - Sjoerd
Tôi sẽ thêm -verbose cờ. Tôi cần tìm DPI (trong lĩnh vực giải quyết) - gc5
cho CentOS làm: yum cài đặt ImageMagick - tidy
Câu trả lời này đều hoạt động với jpeg, và cung cấp thông tin cần thiết để cài đặt nó. - Hugh Perkins
@fbrundu DPI liên quan như thế nào đến một giải pháp như 72x72 - Seanny123


exiv2 là "công cụ" để lấy thông tin từ các tệp hình ảnh:

~$exiv2 myimage.jpg

kết quả đầu ra:

File name       : myimage.jpg
File size       : 1196944 Bytes
MIME type       : image/jpeg
Image size      : 2592 x 1944
Camera make     : LG Electronics
Camera model    : LG-P970
Image timestamp : 2013:05:19 17:27:06
Image number    : 
Exposure time   : 1/9 s
Aperture        : 
Exposure bias   : 0 EV
Flash           : Yes, compulsory
Flash bias      : 
Focal length    : 3.7 mm
Subject distance: 
ISO speed       : 745
Exposure mode   : 
Metering mode   : Average
Macro mode      : 
Image quality   : 
Exif Resolution : 
White balance   : Auto
Thumbnail       : image/jpeg, 13776 Bytes
Copyright       : 
Exif comment    :

22
2017-07-25 01:57





thông tin truyền thông sẽ cung cấp thông tin chi tiết hơn nữa. Nó thường nằm trong repos tiêu chuẩn trên Linux, và cũng có sẵn thông qua homebrew trên OSX.

Hãy thử ví dụ chạy trong thư mục hiện tại:

mediainfo *

hoặc là

mediainfo .

Cả hai lệnh sẽ hiển thị thông tin trên tất cả các tệp phương tiện trong thư mục hiện tại và các thư mục con.

Hiển thị thông tin trên tất cả các hình ảnh JPG bắt đầu từ thư mục hiện tại (bao gồm các thư mục con):

find . -iname "*.jpg" -exec mediainfo {} \;

Nó cũng rất hữu ích với các tập tin âm thanh và video, trong đó nó cho thấy tốc độ bit của tất cả các luồng âm thanh / video, mã hóa algorythm, loại container, mã FOURCC, tức là XVID, X264, v.v.

Ngoài ra còn có một GUI có sẵn trong repos tiêu chuẩn cho tất cả các distro chính thường được đặt tên mediainfo-gui


21
2017-12-23 17:22





identify -verbose image.png

xác định là từ gói ImageMagick.

Nó cũng trích xuất thông tin exif từ hình ảnh jpeg.


14
2017-08-31 08:29





Ngoài ra, hãy kiểm tra ExifTool của Phil Harvey; một ví dụ:

$ exiftool test.png 
ExifTool Version Number         : 8.15
File Name                       : test.png
Directory                       : .
File Size                       : 12 MB
File Modification Date/Time     : 2014:02:13 13:04:52+01:00
File Permissions                : rw-r--r--
File Type                       : PNG
MIME Type                       : image/png
Image Width                     : 2490
Image Height                    : 3424
Bit Depth                       : 8
Color Type                      : RGB
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Significant Bits                : 8 8 8
Image Size                      : 2490x3424

Btw, tôi đang tìm kiếm thông tin về dpi / resolution từ dòng lệnh; và thú vị, đôi khi không có công cụ nào trong số những công cụ này báo cáo rằng trong một hình ảnh (như trong đoạn mã trên); để biết thêm về điều đó, hãy xem Tôi muốn thay đổi DPI bằng Imagemagick mà không thay đổi kích thước byte thực của dữ liệu hình ảnh - Super User - Tuy nhiên, identify -verbose dường như hoạt động cho cùng một hình ảnh như trong đoạn mã trước:

$ identify -verbose test.png 
Image: test.png
  Format: PNG (Portable Network Graphics)
  Class: DirectClass
  Geometry: 2490x3424+0+0
  Resolution: 72x72
  Print size: 34.5833x47.5556
  Units: Undefined
  Type: TrueColor
  Endianess: Undefined
  Colorspace: RGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    Red:
      min: 8 (0.0313725)
      max: 255 (1)
      mean: 237.541 (0.931533)
      standard deviation: 37.2797 (0.146195)
      kurtosis: 21.2876
      skewness: -4.56853
    Green:
      min: 15 (0.0588235)
      max: 255 (1)
      mean: 240.007 (0.941204)
      standard deviation: 37.8264 (0.148339)
      kurtosis: 20.7241
      skewness: -4.51584
    Blue:
      min: 9 (0.0352941)
      max: 255 (1)
      mean: 240.349 (0.942547)
      standard deviation: 38.7118 (0.151811)
      kurtosis: 22.255
      skewness: -4.72275
  Image statistics:
    Overall:
      min: 8 (0.0313725)
      max: 255 (1)
      mean: 179.474 (0.703821)
      standard deviation: 108.711 (0.426316)
      kurtosis: -0.958865
      skewness: -0.995795
  Rendering intent: Undefined
  Interlace: None
  Background color: white
  Border color: rgb(223,223,223)
  Matte color: grey74
  Transparent color: black
  Compose: Over
  Page geometry: 2490x3424+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Zip
  Orientation: Undefined
  Properties:
    date:create: 2014-02-13T13:11:08+01:00
    date:modify: 2014-02-13T13:04:52+01:00
    signature: bada990d3ba29b311501146d9013d67cf36f667c6d39b1f28a72ce913924397d
  Artifacts:
    verbose: true
  Tainted: False
  Filesize: 12.52MB
  Number pixels: 8.526M
  Pixels per second: 7.894M
  User time: 1.080u
  Elapsed time: 0:02.080
  Version: ImageMagick 6.6.2-6 2012-08-17 Q16 http://www.imagemagick.org

... mặc dù, nó có thể là một chút khó khăn để đọc độ phân giải trong các đơn vị của PixelsPerInch sử dụng identify -verbose - xem ImageMagick • Xem chủ đề - Không thể đặt đơn vị thành pixelpinch?.


12
2018-02-13 12:33





Bạn có thể thử lệnh này nếu câu trả lời ở trên không hoạt động:

rdjpgcom -verbose photo.jpg

Nó sẽ hiển thị thông tin như:

Ảnh JPEG là 564w * 779h, 3 thành phần màu, 8 bit cho mỗi mẫu


7
2017-10-04 09:53