как взять 2D-список в качестве входных данных и распечатать его как изображение PBM

Меня попросили инвертировать изображение PBM, перевернув единицы на 0 и 0 на 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
Я успешно перевернул единицы на 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?
Заранее спасибо!!

0 ответов

Другие вопросы по тегам