在python中使用pylottie插件中的convertLottie2GIF
方法生成gif图时候,发现最后生成的动图,会出现黑色背景一闪而过,如下图。网上找了一番也没发现相关问题,问了ai推荐让我使用 python-lottie(但我没用),并没有给出为什么convertLottie2GIF
出现闪黑的解决方法。
注意:当前使用的pylottie版本为 2024
from pylottie import convertLottie2GIF
# 单个文件转换
convertLottie2GIF("lottie.json", "动图.gif")
CTRL+左键点击 convertLottie2GIF
方法查看源码,看了一下他里面的convertMultLottie2GIF
方法,发现transparency=0,这是将调色板索引0设为透明色。感觉应该是没问题。但问题就是出现在这,将它注释之后即可!
def convertMultLottie2GIF(fileNames: list[str], newFileNames: list[str], quality: int = 1):
"""Convert to gif
Args:
----
fileNames (list[str]): list of file path to the lottie files
newFileNames (list[str]): name of the files to write
quality (int, optional): Quality of the returned sequence. Defaults to 1.
"""
imageDataList = convertLotties2PIL(fileNames, quality)
for index, imageData in enumerate(imageDataList):
images = imageData[0]
duration = imageData[1]
images[0].save(
newFileNames[index],
save_all=True,
append_images=images[1:],
duration=duration * 1000 / len(images),
loop=0,
#transparency=0, #重点将这个注释!
disposal=2,
)
rmtree("temp", ignore_errors=True)
最后结果: