我一直在尝试使用PIL/Pillow,但遇到了瓶颈。我一直在尝试将GIF拆分为帧,修改每个帧的颜色深度,然后再将这些帧合并成一个GIF。
下面是我的代码:
我也尝试了这个:
下面是我的代码:
from PIL import Image
def gif_depth_change(pathToGIF, colourDepth):
originalGIF = Image.open(pathToGIF)
newGIF = originalGIF.convert("P", palette=Image.ADAPTIVE, colors=colourDepth)
newGIF.show()
convert()
方法在这里似乎不起作用,因为它只显示一个PNG图像,而没有给定作为参数的颜色深度。我也尝试了这个:
def gif_depth_change(pathToGIF, colourDepth):
originalGIF = Image.open(pathToGIF)
newFrames = []
for frame in range(0, originalGIF.n_frames):
originalGIF.seek(frame)
x = originalGIF.convert("P", palette=Image.ADAPTIVE, colors=colourDepth)
newFrames.append(x)
newFrames[0].save('changed-depth-gif.gif', format='GIF', append_images=newFrames[1:], save_all=True)
运行此代码时,它会将GIF文件保存下来,但不会对其进行任何修改(返回的是相同的GIF)。我还尝试在originalGIF.seek(frame)
上使用convert()
,但返回值为None
。
frames[0]
,请参考链接和链接。 - rocketstar31