【发布时间】:2021-03-20 08:06:11
【问题描述】:
我有一个由黑白像素 (16x16 img) 组成的文件“map.jpg”,我想在文本文件中将白色像素转换为 0,将黑色像素转换为 1。我有这个:
from PIL import Image
import os
mapImg = Image.open('map.png')
with open('map.txt', 'a+') as map:
for y in range(16):
for x in range(16):
pix = mapImg.getpixel((x, y))
if x == 15:
map.write('\n')
else:
if pix == (255, 255, 255):
map.write('0')
else:
map.write('1')
但是不知道为什么我的txt文件里的结果是这样的:
000000000
0011000000
0111110000
0100000110
0010011100
0101010
0111100
000010101000
001110000
00011000000
0000100000
0011000
0000010000
00000000
000000000
000000000
这不是“map.jpg”文件的样子。
编辑:感谢 Random Davis,问题解决了!只需要更改图像格式,因为 jpeg 将 img 压缩到太多或其他东西,谢谢!
【问题讨论】:
-
嗯?为什么
map.jpg没有出现在您的代码中? -
啊,是的,我的错,我在帖子上删除了它
-
@MarkSetchell 他们没有显示
mapImg的定义位置,所以肯定是使用map.jpg的位置。
标签: python python-imaging-library jpeg