我可以制作每帧超过256种颜色的GIF动画吗?


31

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

Answers:


42

是的,可以,但有一定的限制。

盒子里的彩虹

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

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

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


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

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

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

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

1
@ g491 gifsicle可以构建类似的文件(使用透明且可丢弃且处置方式为keep的多个gif)
Kornel


3

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

  1. 首先,复制每个帧,以便每个都有两个。
  2. 然后,按颜色选择感光度足够低的区域,以使其选择一半的图像。
  3. 然后,只需擦除选择内容即可。
  4. 现在,反转选择。
  5. 然后,转到下一帧并再次擦除所有内容。
  6. 保存最终结果(raw-ani.gif)。
  7. 删除一半的帧。
  8. 使用新文件名(ani1.gif)保存。
  9. 加载以前保存的版本。
  10. 删除另一半帧。
  11. 再次保存(ani2.gif)。

以绝对的位置修改一些HTML并放在ani2.gif顶部ani1.gif

重复该过程以制作四,八,十六层或所需的层。

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


2

没有gif文件不限于256色。


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

虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
马克·亨德森

1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.