【发布时间】:2016-03-23 08:24:55
【问题描述】:
我有以下问题: 我在几个 PNG 文件中提取 gif 的不同帧:
def extractFrames(inGif, outFolder):
frame = Image.open(inGif)
nframes = 0
while frame:
frame.save( '%s/%s-%s.png' % (outFolder, os.path.basename(inGif), nframes ) , 'PNG')
nframes += 1
try:
frame.seek( nframes )
except EOFError:
break;
return True
按预期工作。 但是,如果我运行以下代码:
im = Image.open(item) #item is one of the earlier created PNGs
pix = im.load()
for x in range(0,im.size[0]):
for y in range(0,im.size[1]):
print pix[x,y]
输出将类似于13 或3,而不是预期的(255, 255, 255, 255)。
一旦我在 Paint 中打开文件并在不修改任何内容的情况下保存它们,脚本就可以正常运行并输出一个带有 (R, G, B, A) 的元组。
所以我的问题是: 为什么会这样?在运行代码的第二部分之前,我如何修改不必手动打开所有图像的代码?
编辑:我最初尝试将帧提取为 GIF 而不是 PNG,结果相同。
【问题讨论】:
标签: python python-imaging-library