我正在使用node的gm模块和imagemagick,它似乎真的是在搞砸一些GIF,我需要调整它的大小。有一个很好的配置,对GIF工作良好吗?例如,我尝试调整这个GIF的大小:
https://postimg.org/image/4ngzc5igh/
最后看起来是这样:
https://postimg.org/image/xolblk2wh/
代码:
var gm = require('gm').subClass({ imageMagick: true });
gm(file.path).gravity('Center')
.modulate(config.brightness)
.noProfile()
.resize(config.width, config.height, config.geometry)
.crop(config.width, config.height);发布于 2016-09-03 05:55:36
我不会说node,但希望能帮到你。您正在处理一个动画GIF,它们在帧间高度优化,只对图像中更改的部分进行过度绘制,以减少大小。
通常,您需要使用-coalesce将图像分割成单独的框架,并重新创建每个框架,包括所有优化后的离开部分。然后调整所有帧的大小,并将它们重新组合起来,并重新优化层。
该命令如下所示:
convert animated.gif -coalesce -resize 200x100 -modulate A,B,C -layers optimize result.gif如果你检查你的熊的框架,你可以看到有37个,它们都是不同的大小和不同的位置,以便对每个框架的特定部分进行过涂:
identify bear.gif输出
bear.gif[0] GIF 500x500 500x500+0+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[1] GIF 262x449 500x500+121+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[2] GIF 262x449 500x500+121+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[3] GIF 262x449 500x500+121+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[4] GIF 262x449 500x500+121+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[5] GIF 246x449 500x500+137+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[6] GIF 266x449 500x500+137+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[7] GIF 256x449 500x500+171+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[8] GIF 263x453 500x500+171+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[9] GIF 239x453 500x500+195+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[10] GIF 260x453 500x500+195+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[11] GIF 265x453 500x500+190+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[12] GIF 244x453 500x500+190+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[13] GIF 257x453 500x500+177+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[14] GIF 249x445 500x500+177+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[15] GIF 270x444 500x500+156+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[16] GIF 247x449 500x500+156+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[17] GIF 269x449 500x500+121+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[18] GIF 247x443 500x500+121+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[19] GIF 258x457 500x500+110+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[20] GIF 243x457 500x500+110+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[21] GIF 272x457 500x500+81+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[22] GIF 240x457 500x500+81+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[23] GIF 261x444 500x500+60+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[24] GIF 250x446 500x500+60+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[25] GIF 270x446 500x500+40+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[26] GIF 245x443 500x500+40+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[27] GIF 249x443 500x500+36+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[28] GIF 261x445 500x500+36+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[29] GIF 254x445 500x500+43+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[30] GIF 277x444 500x500+43+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[31] GIF 251x444 500x500+69+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[32] GIF 270x444 500x500+69+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[33] GIF 258x457 500x500+83+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[34] GIF 285x457 500x500+83+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[35] GIF 248x443 500x500+120+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009
bear.gif[36] GIF 266x443 500x500+120+0 8-bit sRGB 256c 1.802MB 0.000u 0:00.009您可以使用以下命令看到单个合并帧:
convert bear.gif -coalesce miff:- | montage -tile 8x -geometry +5+5 - frames.gif

https://stackoverflow.com/questions/39300598
复制相似问题