Я пишу программу для курса колледжа. Я импортирую файл .PPM, сохраненный как 2-мерный массив из main в функцию. Затем я должен обновить пиксели графического окна (которое открывается в основном) с использованием методов и функций .setPixel и color_RGB().Графика Python пропускает каждый пиксель при рисовании файла .PPM из функции
пиксели обновляются, однако по какой-либо причине между каждым цветным пикселем есть белый пиксель. Это не файл PPM (они были предоставлены моим профессором, и я пробовал несколько), поэтому это должна быть моя функция.
Предупреждение: Мне не разрешено использовать что-либо в моей программе, которое мы еще не рассмотрели в нашем курсе (это первый год, 4-месячный курс, поэтому масштаб не массивный). Мне не нужно точно знать, КАК его исправить, насколько мне нужно знать, почему это делается (AKA: мне нужно объяснить, как я это исправил, и почему он ломался в первую очередь).
Вот моя функция:
def Draw_Pic(pic,pic_array, sizeX, sizeY, gfx_window):
for y in range(sizeY):
for x in range(0, sizeX, 3):
pixel_color = color_rgb(pic_array[y][x],pic_array[y][x+1],pic_array[y][x+2])
pic.setPixel(x,y,pixel_color)
gfx_window.update()
Подсказка: вы не можете использовать одну и ту же переменную x для индексации в массив RGB и в изображение, делая это, вы заканчиваете установку только 1 на 3 пикселя на изображении. – mjv
Хорошо, так какой будет лучший маршрут, чтобы исправить это? Как я уже упоминал в другом комментарии, возможно, введя переменную-счетчик за пределы цикла, которая добавит 1 к месту x для каждой итерации? Хотя похоже, что это может завершиться неудачно, когда массив начнет возвращаться для каждой новой строки. – Pyrok