如何从Linux命令行中获取图像(图片)的信息?
我正在开发一个网络应用程序,目前正在从一个旧的应用程序中迁移一些东西,但我讨厌我必须打开一个图像编辑器来获得一些关于我正在迁移的图像的信息。诸如图像尺寸之类的东西。
有什么命令行工具可以让我在Linux下完成这些任务吗?
258
12
我正在开发一个网络应用程序,目前正在从一个旧的应用程序中迁移一些东西,但我讨厌我必须打开一个图像编辑器来获得一些关于我正在迁移的图像的信息。诸如图像尺寸之类的东西。
有什么命令行工具可以让我在Linux下完成这些任务吗?
对于一些图像格式,你可以直接使用
file
命令。并非所有的图像格式都会报告尺寸(最明显的是JPEG不报告)。
对于这些,你必须使用更详细的东西,比如。
convert
命令是ImageMagick软件包的一部分。获得这些信息的最好方法是使用`识别'命令。
或只有大小属性
它是ImageMagick的一部分,你可以像这样在Ubuntu上安装它。
exiv2是"工具"。 用于从图片文件中获取信息。
产出:{{{21112436}}
mediainfo][1]会给出更详细的信息。 它通常在 Linux 的标准仓库中,在 OSX 上也可以通过 homebrew 获得。
例如在当前文件夹中运行。
或
这两个命令将显示当前文件夹和子文件夹中所有媒体文件的信息。
显示从当前文件夹开始的所有JPG图像信息(包括子文件夹)。
它对音频和视频文件也非常有用,因为它显示了所有音频/视频流的比特率、编码算法、容器类型、FOURCC代码,即:
XVID
、X264
等。XVID
、X264
等。在所有主流发行版的标准仓库中也有一个图形用户界面,通常命名为 "mediainfo-gui"。
[1]: https://mediaarea.net/en/MediaInfo
另外,可以看看Phil Harvey的ExifTool。 一个例子。
另外,我想从命令行中获取dpi/分辨率的信息。 有趣的是,有时这些工具都不会在图像中报告这些信息(就像上面的片段)。 更多信息,请参见我想用Imagemagick改变DPI,而不改变图像数据的实际字节大小--超级用户--然而,"identify -verbose "似乎对前面的代码段中的同一图像有效。
... 虽然,使用
identify -verbose
来读取PixelsPerInch单位的分辨率可能会有点棘手--请参见ImageMagick - View topic - Cannot set units to pixelsperinch?。identify来自ImageMagick包。
它还可以从jpeg图像中提取exif信息。
如果上面的答案不起作用,你可以试试这个命令。
它将显示这样的信息。
*JPEG图像是564w779h,3种颜色成分,每样8位**。
我刚刚发现,少(用lessfile/lesspipe)其实可以通过后台使用ImageMagick来显示图片信息。
产量
还有一种方法没有贴在上面,就是用feh(你需要安装它)。
产出:
使用。
将输出一个表格(如上),但包含所有图像信息(递增NUM列)。 有助于在脚本中使用。
您可以使用 。
也可以用 "http://"代替 "file://"。
如果你处理的是PNG,可能会有一些属性,我发现几乎任何软件都很难读取。 对于这些属性,你应该使用pngmeta。
pngmeta: > pngmeta file.png
这对缩略图特别有用,因为根据FreeDesktop标准,应该是PNG格式,并将路径信息存储为PNG属性(Thumb::URI)。
你想要的工具是`file'。
它显示了大量关于各种文件的信息,令人惊讶。
语法是。
$ file my_pic.jpg
。