使用PIL绘制单个像素,但图像模糊



我正在尝试创建一个由彩色正方形组成的图像。我只需要每个正方形有一个像素大,因为它只是一个块颜色。然而,当我使用这个代码时,生成的图像非常模糊。有没有什么能让寄宿生变得敏锐?

def fancycolnw2(seq,m):
data=numbwall(seq,m)
#print(data)
for i in range(len(data)):
for j in range(len(data[i])):
if data[i][j]==' ':
data[i][j]=-1
im = Image.new('RGBA', (len(data[0]),len(data))) # create the Image of size 1 pixel 
#print(data)
for i in range(len(data)-1):
for j in range(len(data[i])-1):    
#print(i,j)
if data[i][j]==-1:
im.putpixel((j,i), ImageColor.getcolor('black', 'RGBA'))
if data[i][j]==0:
#print('howdy')
im.putpixel((j,i), ImageColor.getcolor('red', 'RGBA'))
if data[i][j]==1:
im.putpixel((j,i), ImageColor.getcolor('blue', 'RGBA'))
if data[i][j]==2:
im.putpixel((j,i), ImageColor.getcolor('grey', 'RGBA'))
im.show()
im.save('simplePixel.png') # or any image format

我得到的结果如下:图像

这是正确的图像,我只希望像素之间的边界清晰。如有任何帮助,我们将不胜感激!

图像非常清晰,但相当小。我怀疑你是";放大";为了看得更清楚,无论你用什么程序缩放都会过滤图像,因为对于大多数图像来说,这看起来更好。你需要找到一个使用";最近的邻居";放大时重新采样,或者生成更大的图像,例如通过设置4乘4像素块而不是单个像素。

(此外,代码上写着"#或任何其他图像格式"。不要使用JPEG,因为有损压缩可能会破坏您的图像。(

最新更新