我正在尝试将图像从gif格式转换为png格式。我就是这样
def _gif_to_png(gif_dir, png_dir):
img_names = tf.gfile.ListDirectory(gif_dir)
for f in img_names:
# get the filename without the extension
basename = os.path.basename(f).split(".")[0]
im = Image.open(os.path.join(gif_dir,f))
transparency = im.info['transparency']
png_file_name = os.path.join(png_dir, basename+'.png')
im.save(png_file_name, transparency=transparency)
png_names = tf.gfile.ListDirectory(png_dir)
但是,我收到以下错误消息
transparency = im.info['transparency']
KeyError: 'transparency'
可能是什么问题,以及如何解决?
最佳答案
当您的GIF不包含透明度时,就会发生这种情况。
transparency
透明色指数。如果图像不透明,则忽略此键。
(http://pillow.readthedocs.io/en/5.1.x/handbook/image-file-formats.html#gif)
您如何知道GIF是否包含透明像素?显然,您的做法是-测试该密钥是否存在。您可以用try..except
包围它,也可以用
if 'transparency' in im.info.dict():
.. do stuff ..