j0h Asked: 2018-04-23 16:20:05 +0800 CST2018-04-23 16:20:05 +0800 CST 2018-04-23 16:20:05 +0800 CST 是否有命令获取 gif 中的帧数? 772 是否有命令获取 gif 中的帧数?我有一些 gif,我想将它们转换为数组,但我想根据我碰巧提供给我的程序的任何随机 gif 中的帧数来限制数组和数组的结构。我在想imagemagick可能有这样的选择,但我还没有找到。 command-line image-processing imagemagick gif 5 个回答 Voted Best Answer pomsky 2018-04-23T16:31:13+08:002018-04-23T16:31:13+08:00 如果你安装了 ImageMagick,你可以使用它的identify命令如下 identify /path/to/image.gif 您将获得每一帧的详细信息。 正如steeldriver所建议的,您可以直接使用输出格式说明符获取序列中的图像数量%n,但相当烦人的是,它似乎为每个图像打印一次。要获得一个号码,您可以这样做 identify -format "%n\n" path/to/file.gif | head -1 L. D. James 2018-04-23T17:05:09+08:002018-04-23T17:05:09+08:00 Exiftool会将帧数列为其扩展输出的一部分。 这是一个动画 Gif 文件的命令和输出: $ exiftool -b -FrameCount giphy.gif 33 gif 上的完整 exiftool 输出: $ exiftool giphy.gif ExifTool Version Number : 10.10 File Name : giphy.gif Directory : . File Size : 2.1 MB File Modification Date/Time : 2018:04:22 21:00:42-04:00 File Access Date/Time : 2018:04:22 21:01:03-04:00 File Inode Change Date/Time : 2018:04:22 21:00:52-04:00 File Permissions : rw-rw-r-- File Type : GIF File Type Extension : gif MIME Type : image/gif GIF Version : 89a Image Width : 500 Image Height : 281 Has Color Map : Yes Color Resolution Depth : 7 Bits Per Pixel : 7 Background Color : 127 Animation Iterations : Infinite XMP Toolkit : Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 Creator Tool : Adobe Photoshop CS6 (Macintosh) Instance ID : xmp.iid:C312DB1DA6A311E5B8F5D2BA262E999D Document ID : xmp.did:C312DB1EA6A311E5B8F5D2BA262E999D Derived From Instance ID : xmp.iid:C312DB1BA6A311E5B8F5D2BA262E999D Derived From Document ID : xmp.did:C312DB1CA6A311E5B8F5D2BA262E999D Frame Count : 33 Duration : 2.31 s Image Size : 500x281 Megapixels : 0.141 WinEunuuchs2Unix 2018-04-23T16:29:47+08:002018-04-23T16:29:47+08:00 单行命令 受这篇文章的启发,使用这个单行命令: $ identify drop_caches.gif | wc -l 128 有关更多详细信息,请使用: identify -verbose filename.gif 该网站可让您.gif以多种方式上传和分析它,包括其中的帧数: Image Magicconvert提供的将您的每帧转换为单独的图像:.gif.png $ convert -verbose -coalesce drop_caches.gif drop_caches.png drop_caches.gif[0] GIF 470x940 470x940+0+0 8-bit sRGB 256c 177KB 0.090u 0:00.099 drop_caches.gif[1] GIF 13x1 470x940+398+704 8-bit sRGB 256c 177KB 0.080u 0:00.089 drop_caches.gif[2] GIF 306x620 470x940+144+130 8-bit sRGB 256c 177KB 0.080u 0:00.089 (... SNIP ...) drop_caches.gif=>drop_caches-125.png[125] GIF 470x940 470x940+0+0 8-bit sRGB 255c 50.3KB 27.100u 0:24.890 drop_caches.gif=>drop_caches-126.png[126] GIF 470x940 470x940+0+0 8-bit sRGB 254c 48.9KB 27.320u 0:25.089 drop_caches.gif=>drop_caches-127.png[127] GIF 470x940 470x940+0+0 8-bit sRGB 254c 48.9KB 27.480u 0:25.269 Vi. 2018-04-23T23:27:21+08:002018-04-23T23:27:21+08:00 FFmpeg方式: ffprobe -v warning -show_frames qqq.gif | grep -c '\[/FRAME\]' Gif 视频是视频,因此视频分析工具也可能有所帮助。 αғsнιη 2018-04-24T01:56:56+08:002018-04-24T01:56:56+08:00 如果你已经安装,你也可以使用less命令。ImageMagick less +G image.gif 总帧数是#括号中 的最后一个image.gif[#]...(从0开始);或计算: less image.gif | wc -l
如果你安装了 ImageMagick,你可以使用它的
identify
命令如下您将获得每一帧的详细信息。
正如steeldriver所建议的,您可以直接使用输出格式说明符获取序列中的图像数量
%n
,但相当烦人的是,它似乎为每个图像打印一次。要获得一个号码,您可以这样做Exiftool会将帧数列为其扩展输出的一部分。
这是一个动画 Gif 文件的命令和输出:
gif 上的完整 exiftool 输出:
单行命令
受这篇文章的启发,使用这个单行命令:
有关更多详细信息,请使用:
该网站可让您
.gif
以多种方式上传和分析它,包括其中的帧数:Image Magic
convert
提供的将您的每帧转换为单独的图像:.gif
.png
FFmpeg方式:
Gif 视频是视频,因此视频分析工具也可能有所帮助。
如果你已经安装,你也可以使用
less
命令。ImageMagick
总帧数是
#
括号中 的最后一个image.gif[#]...
(从0开始);或计算: