好的,我的下一个问题涉及到这段代码(它在第10列的图片下面画了一条线:
def drawLine():
for y in range(getHeight(pic)):
pixel = getPixelAt(pic, 9, y)
setColor(pixel, red)
show (pic)好了,我已经清楚地缩进显示(图片)一个标签太远了。所以我让它工作了,所以我不是在问如何修复代码。我的问题是,当我将上面的代码放入其中时,它会在图片的一个副本上绘制一条大约10-50像素长的线(这似乎有点随机)。我想知道为什么它会这么做。从理论上讲,它不应该在每次迭代时显示图片的副本吗?
发布于 2014-01-23 03:34:05
如果不知道您正在使用的是什么库以及这些对象是什么,那么除了猜测…之外,不可能做更多的事情但有一种猜测似乎非常合理。
您似乎正在显示相同的图片,在完全相同的(未指定的)位置,10-50次(取决于它的高度)。因此,最后的9-49次没有明显的效果;你只是在已经存在的相同像素上对每个像素进行blitting。(这假设您没有任何alpha透明度。)
同时,在(9,0)处绘制一个红色像素,然后在(9,1)处绘制另一个像素,依此类推,直到(9,10)或(9,50)或图像的高度。因此,这将在图片上或其旁边绘制一条红线。
想象一下,你拍摄了50张完全相同的、非常薄的、完全不透明的照片,并将它们堆叠在桌子上,然后在堆叠的另一边或旁边画了一条红线。这看起来就像在桌子上打印一张照片,然后在上面或旁边画一条红线。这就是你所看到的。
https://stackoverflow.com/questions/17077533
复制相似问题