0

我正在为大学课程编写程序。我将保存为二维数组的 .PPM 文件从 main 导入到函数中。然后我必须使用 .setPixel 和 color_RGB() 方法和函数更新图形窗口(在主窗口中打开)的像素。

像素正在更新,但是由于某种原因,每个彩色像素之间都有一个白色像素。这不是 PPM 文件(它们是由我的教授提供的,我已经尝试了多个文件),所以它必须是我的功能。

警告:我不允许在我的程序中使用我们课程中尚未涵盖的任何内容(这是第一年,4 个月的课程,因此范围并不大)。我不需要确切地知道如何修复它,就像我需要知道它为什么这样做一样(又名:我需要能够解释我是如何修复它的,以及它为什么会首先损坏)。

这是我的功能:

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()
4

1 回答 1

0

您正在使用range(0, sizeX, 3)它创建一个值从 0 到 sizeX 且增量为 3 的列表。

因此,您的 x 变为 0..3..6..9 等。对于您从 3 个组件组合像素颜色的部分非常有意义,但随后您pic.setPixel(x,y,colors)使用相同的交错 x。

希望有帮助。

PS顺便说一句,为什么是“颜色”而不是“颜色”?

编辑另外,这样你将只复制 1/3 的图像pic_array

于 2012-04-25T04:30:15.870 回答