Меня попросили инвертировать изображение PBM, переключив 1 с 0 на 0 и 1 на 1 с, и вывести его как изображение PBM. Вот пример, который я использовал. введите описание ссылки здесь , и оно выглядит как
P1
6 10
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 1 0
1 0 0 0 1 0
0 1 1 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Я успешно перевернул с 1 по 0 и с 0 по 1 с 2D-списком, но не знаю, как вывести его в виде изображения PBM.
Вот код, который я пишу:
elif sys.argv[1] == 'invert':
picture = input()
print(picture)
size = input()
print(size)
nsize = size.split()
W = int(nsize[0])
H = int(nsize[1])
Board = []
for j in range(H):
L = input()
nL = L.split()
Board.append(nL)
for row in range(len(Board)):
ncols = len(Board[row])
for col in range(ncols):
if Board[row][col] == '0':
Board[row][col] = '1'
else:
Board[row][col] = '0'
for row in Board:
for col in row:
print(int(col), end=' ')
print()
Когда я отображаю, вывод получит только
P1
6 10
1 1 1 1 0 1
1 1 1 1 0 1
1 1 1 1 0 1
1 1 1 1 0 1
1 1 1 1 0 1
1 1 1 1 0 1
0 1 1 1 0 1
1 0 0 0 1 1
1 1 1 1 1 1
1 1 1 1 1 1
Но на нем должно отображаться изображение PBM с замененным черно-белым цветом.
Так что я просто хочу Спросите, как взять 2D-список в качестве входных данных и распечатать его как изображение PBM? Важно отметить, что нам разрешено только импортировать sys и использовать списки. и мы запускаем эту программу на linux терминале с командами python3 filename.py invert <filename.pbm>output
и display output
. Так как же распечатать вывод в виде изображения PBM, используя список 2D?
Заранее спасибо !!