首页 > 解决方案 > python PIL png文本搞砸了

问题描述

我想将我用 matplotlib 生成的多个 png 合并到一个新的 png 中。现在,当我使用 PIL 加载和保存任何 png 时,文本会完全搞砸并且变得不可读。

from PIL import Image

img_zraw_box = Image.open('tmp_zraw_box0.png')
img_result = Image.new('RGB', (img_zraw_box.width, img_zraw_box.height))
img_result.paste(img_zraw_box, (0, 0))
img_result.save('tmp_zraw_box1.png')

原始matplotlib png: 在此处输入图像描述

png 打开,过去并使用 PIL 保存: 在此处输入图像描述

有谁知道出了什么问题,我该如何解决这个问题?谢谢你,埃尔玛

标签: python-3.xpython-imaging-librarypng

解决方案


我认为您需要将mask参数添加到您的PIL paste()调用中,以便正确尊重 alpha 通道:

from PIL import Image
img_zraw_box = Image.open('tmp_zraw_box0.png')

# Create a solid white background to paste onto
img_result = Image.new('RGB', (img_zraw_box.width, img_zraw_box.height), color='white')

# Paste with alpha mask
img_result.paste(img_zraw_box, (0, 0), mask=img_zraw_box)
img_result.save('tmp_zraw_box1.png')

推荐阅读