在Linux中是否可以使用命令行工具执行此类任务?
#1 楼
对于某些图像格式,您可以只使用file
命令: br /> $ file MyPNG.png
MyPNG.png: PNG image, 681 x 345, 8-bit/color RGB, non-interlaced
对于那些人,您将不得不使用更复杂的东西,例如:
$ file MyJpeg.jpg
MyJpeg.jpg: JPEG image data, JFIF standard 1.01
convert
命令是ImageMagick的一部分包。#2 楼
获取此信息的最佳方法是使用identify
命令:$ identify image.png
或仅尺寸属性
$ identify -format "%wx%h" photo.jpg
它是ImageMagick的一部分,可以像这样在Ubuntu上安装:
$ sudo apt-get install imagemagick
评论
格式字符串的规范可以在GraphicsMagick手册中找到。
– Sjoerd
13年2月6日在19:19
我将添加-verbose标志。我需要找到DPI(位于“分辨率”字段中)
– gc5
2014年6月11日15:25
对于CentOS,请执行以下操作:yum install ImageMagick
–整洁
2014年9月10日,下午3:34
该答案都适用于jpeg,并提供了安装它所需的信息。
–休·珀金斯(Hugh Perkins)
2015年5月10日下午5:05
@fbrundu DPI与72x72之类的分辨率有何关系
– Seanny123
16年4月5日在15:37
#3 楼
exiv2是从图片文件获取信息的“工具”:~$exiv2 myimage.jpg
输出:
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 :
评论
你知道我什么时候会从“ exiv2”得到这个错误吗?文件1059535097558476208.jpg的打印操作中的Exiv2异常:无法读取输入数据
–莫娜·贾拉勒(Mona Jalal)
20年6月24日在20:59
#4 楼
mediainfo将提供更详细的信息。它通常在Linux上的标准存储库中,也可以在OSX上通过homebrew获得。例如在当前文件夹中运行:
mediainfo *
或
mediainfo .
这两个命令都将显示当前文件夹和子文件夹中所有媒体文件的信息。
显示所有JPG图像的信息从当前文件夹(包括子文件夹)开始:
find . -iname "*.jpg" -exec mediainfo {} \;
对于音频和视频文件也非常有用,因为它可以显示所有音频/视频流的比特率,编码算法,容器类型,FOURCC代码,例如
XVID
,X264
等。#5 楼
另外,请查看Phil Harvey的ExifTool;一个例子:$ 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
顺便说一句,我想从命令行获取有关dpi /分辨率的信息;有趣的是,有时这些工具都没有在图像中报告该情况(如上述代码段所示);有关更多信息,请参见我想使用Imagemagick更改DPI,而不更改图像数据的实际字节大小-超级用户-但是,
identify -verbose
似乎适用于与上一片段相同的图像:$ 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
...但是,使用
identify -verbose
以PixelsPerInch单位读取分辨率可能有点棘手-请参见ImageMagick•查看主题-无法将单位设置为pixelsperinch ?。 评论
不错:identify -verbose是我发现的唯一报告JPG质量的工具。例如,它将说质量:90。
– Tanius
19年7月12日在23:38
识别-详细报告称“每秒像素数”,以... MB为单位!这让我有些害怕;)。
– Alexey
20 Dec 20'14:52
#6 楼
identify -verbose image.png
identify来自ImageMagick包。
还从jpeg图像中提取exif信息。
#7 楼
如果以上答案无效,您可以尝试以下命令:rdjpgcom -verbose photo.jpg
它将显示以下信息: ,3个颜色分量,每个样本8位
#8 楼
上面未发布的其他方法,使用的是feh(需要安装):feh -l image.jpg
输出:
NUM FORMAT WIDTH HEIGHT PIXELS SIZE(bytes) ALPHA FILENAME
1 jpeg 1280 960 1228800 91319 - image.jpg
<使用:
feh -l *.jpg
将输出一个表(如上),但带有所有图像信息(增加NUM列)。在脚本中使用很有用。
#9 楼
我只是发现通过使用ImageMagick在幕后可以实际显示较少的图像(使用lessfile / lesspipe):sudo apt-get install imagemagick
less wallpaper.jpg
评论
你在开玩笑吗?我尝试了这个,它弹出一个警告,问我是否真的要读取二进制文件,然后它只是显示了一堆二进制文件...(使用Ubuntu 14.04)
–休·珀金斯(Hugh Perkins)
2015年5月10日下午5:04
您需要安装ImageMagick才能运行。我提到它在后台使用ImageMagick,不是吗?
–感谢DK
2015年5月10日下午6:21
相当愚蠢的方式...如果您安装了imageMagick,则只需使用identify命令即可。
– Mike Q
17年3月3日在21:17
安装ImageMagick对输出的影响不大。
–西蒙
20/11/14在13:00
#10 楼
您想要的工具是file
。它显示了令人惊讶的各种文件信息。
语法是:
$ file my_pic.jpg
#11 楼
您可以使用:php -r "print_r(getimagesize('file:///archives/Picture/12 farvardin/20120331_013.jpg'));"
也可以用
file://
替换http://
评论
小猪为此提供支持,您可以执行相同的操作,但是使用命令行args使其更易于使用。 php -r“ print_r(getimagesize(\ $ argv [1]));”
–凯文·施罗德(Kevin Schroeder)
2014年5月5日20:59
#12 楼
如果您正在处理PNG,则可能发现有些属性很难用几乎所有软件读取。对于这些,应使用pngmeta:pngmeta file.png
这对于缩略图特别有用,因为根据FreeDesktop标准,格式为PNG,并将路径信息存储为PNG属性(Thumb :: URI)。
评论
不告诉Ubuntu中的任何dpi
–本征场
19-09-27在12:15
#13 楼
如其余答案中所提供的,您可以将identify
命令与-verbose
标志一起使用。 identify
输出:
Format: JPEG (Joint Photographic Experts Group JFIF format)
Geometry: 1000x714+0+0
Colorspace: sRGB
Depth: 8-bit
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Filesize: 125KB
Number pixels: 714K
json输出(不带-Y标志):
{
"Format": "JPEG (Joint Photographic Experts Group JFIF format)",
"Geometry": "1000x714+0+0",
"Colorspace": "sRGB",
"Depth": "8-bit",
"Channel depth": {
"red": "8-bit",
"green": "8-bit",
"blue": "8-bit"
},
"Filesize": "125KB",
"Number pixels": "714K"
}
注意:装有
yaml
sudo pip install yq
# OR
pip install --user yq
# note: sed is used to remove what breaks yaml format (first line only).
identify -verbose image.png | sed 's/^Image:.*/Image:/' \
| yq -Y '.Image|{"Format","Geometry","Colorspace","Depth","Channel depth","Filesize","Number pixels"}'
.jpg
,.png
。似乎也不适用于.gif
(.tif
输出是不同的)
评论
可能只是我,但是imagemagick似乎实际上正在那里加载图像数据,因为它运行非常缓慢。 imo标识应改为
– jozxyqk
2014年6月5日在11:23
哦,/ dev / null是一个参数,嘿嘿
–水瓶座力量
2014年12月9日20:31在
FWIW这就是我用来获取照片的创建日期时间的方法:确定-format“%[EXIF:DateTimeOriginal] \ n” foobar.jpg
– kralyk
16年8月13日在22:13
当前版本的文件确实支持不带附加参数的情况下显示JPEG大小:$ file foo.jpg返回foo.jpg:JPEG图像数据,JFIF标准1.01,长宽比,密度72x72,段长16,Exif标准:[TIFF图像数据,big-endian,direntries = 1],基线,精度8、120x120,帧3
–Cœur
16 Dec 23'9:42