本人刚学python,最近在学习如何利用pygame进行图片放大旋转等处理
我想通过 pygame.Color 结合 pygame.PixelArray 来获取窗口的像素颜色信息。我打算把这些信息用二维列表 color 储存起来,但是存储的过程的中却发生了令我非常不解的问题
import sys,pygame
screen=pygame.display.set_mode((800,800))
image=pygame.image.load("QQ图片20221230223116.png")
screen.blit(image,(0,0))
run=True
A=[[2,0],[0,2]]
pixelarray=pygame.PixelArray(screen)
c=[]
color=[]
for i in range(0,800):
c.append(" ")
for i in range(0,800):
color.append(c)
f=False
for i in range(0, 800):
for j in range(0, 800):
color[i][j]=pygame.Color(pixelarray[i,j])
print(color[234][12])
print(pygame.Color(pixelarray[234,12])
按照我的逻辑来说,代码中对 color 赋值的循环部分应该已将 pygame.Color(pixelarray[234,12] 的值赋值给了 color[234][12],但是我将他们分别输出后发现,他们竟然不相等!
我尝试在循环中输出 color[234][12] 是何时发生的改变,结果是当 i=408,j=12 的时候 color[234][12] 就被从原有正确的值改变为了错误的值,对此过程我仍然不解。
希望各位能帮我分析一下原因,万分感谢!