其实这个问题非常复杂,需要对GIF进行解码和编码,GIF是由一帧一帧的图像组成的。 首先有一个问题需要明确:两个GIF的帧数量不一致怎么办,帧间隔(动画快慢)不一致怎么办? 先想好对齐算法,比如左图有2帧,帧间隔1秒,右图有3帧,帧间隔2秒,那么左图一个循环需要1秒,右图则需要4秒,新组成的GIF应该按照什么样的顺序去播放? GIF 本身是一个图片帧集合,你需要将两个GIF的帧先拼接起来生成新图片,然后再打包成一个新的GIF,这个步骤比较简单,使用Canvas API就可以。 关键还是怎么对帧进行对齐,毕竟每个GIF的速度可能都不一样