我正在尝试将图像从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'
可能是什么问题以及如何解决?
答案 0 :(得分:2)
当您的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 ..