как взять 2D-список в качестве входных данных и распечатать его как изображение PBM - PullRequest
0 голосов
/ 29 марта 2020

Меня попросили инвертировать изображение 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?
Заранее спасибо !!

...