今天在使用PIL Image创建空白的黑白图时遇到个诡异的bug,直接贴代码
from PIL import Image
import numpy as np
# 先创建个256x256,全部值为True的numpy数组
x = np.ones((256, 256)).astype(bool)
# 使用Image.new创建一个模式为'1'(黑白)的空白图片
img = Image.new('1', (256, 256), 1)
y = np.asarray(img)
# x和y值相同,类型相同
print((x == y).all())
img1 = Image.fromarray(x, mode='1')
img1.show()
img2 = Image.fromarray(y, mode='1')
img2.show()
img1如下,空白图片创建失败
img2如下,空白图片创建成功
x和y的值是完全相同的,但创建出两个不同的图片,并且img1是错误的。