我可以制作每帧超过256种颜色的GIF动画吗?我想制作动画GIF,但有限的颜色托盘使它看起来像垃圾。

#1 楼

是的,您可以这样做,但有一定的限制。



GIF支持每帧(本地)调色板,并具有“原样”帧处理方法,允许组合几个帧。

我写了[使用这种技术的GIF编码器“ gifski”。它可以产生每帧约1000-3000种颜色的动画。

问题是,只有当并非图像的所有像素在帧之间都发生变化时,您才能利用这一点。因此,如果您在静止的背景前移动了某些东西,则可以有超过256色的动画-移动的对象将被限制为256色,但是背景可以由具有不同调色板的几帧组成。借助巧妙的抖动功能,甚至可以重用运动对象的某些像素。

评论


您是说只有动画图像才能具有超过256种颜色吗?无论如何,我们可以显示多于256种颜色的静态图像吗?

–起搏器
14-10-14在21:32

@Pacerier仅适用于动画。从理论上讲,静态GIF是可能的,但是由于遗留/错误,浏览器将0帧延迟解释为大约1/16秒,因此充其量您可以使动画生成静态图像。对于静态,无论如何,最好还是使用PNG / JPG。

–内核
14-10-15在23:32



是的gif在静态图片方面似乎甚至没有一个优势。

–起搏器
14-10-17在18:34

您可以使用@GeorgeEdison,但是GIF的压缩效果非常差,因此,与仅使用PNG或其他任何方式相比,它在各种方面都会更糟。

–内核
16-10-2在11:53

@ g491 gifsicle可以构建类似的文件(使用透明且可丢弃=保留模式的多个gif)

–内核
17年2月2日,19:35

#2 楼

不,你不能; GIF格式仅允许256色。

评论


每帧。在您提到实用性问题之前,我很确定Bing现在正在使用这些真彩色GIF。

–约翰·查德威克
13年3月16日在5:27

我在此gif上看到32697种颜色:phil.ipal.org/tc.html以及goo.gl/DBdg1o

–起搏器
14-10-14在21:31



#3 楼

至少从理论上讲,您可以堆叠GIF并使额外的颜色透明。


首先,复制每个帧,以便每个都有两个。
然后,以足够低的灵敏度通过颜色选择区域,以便选择一半的图像。
然后,只需擦除选择区域中的所有内容即可。
现在,反转选择。
然后,转到下一帧并再次擦除所有内容。
保存最终结果(raw-ani.gif)。
删除一半的帧。
以新文件名(ani1.gif)保存。
加载以前保存的版本。
删除框架的另一半。
再次保存(ani2.gif)。

使用绝对位置放置一些HTML,然后将ani2.gif放在ani1.gif的顶部。

重复此过程以制作四层,八层,十六层或您想要的层。

您还可以加快raw-ani.gif的结果并获得Kornel描述的内容。

#4 楼

没有gif文件不限于256种颜色。

评论


真彩色GIF骇客虽然是正确的,但也有一些主要限制:它不适用于不支持动画的图像查看器(或在用户已禁用GIF动画的浏览器中),在某些情况下渲染速度可能很慢具有最小帧延迟的浏览器,并且往往会产生压缩效果不佳的巨大文件。这很简洁,但在现实世界中并不是很有用。如果您需要超过256种颜色,则只需使用PNG。 (可惜,MNG / APNG浏览器支持确实参差不齐。)

–伊尔马里·卡洛宁(Ilmari Karonen)
2012年4月19日,0:20



尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。

–马克·亨德森(Mark Henderson)
13年1月8日在20:41



#5 楼

可能有真彩色的gif,并且在线上有很多文章,但是它们并不实用。