为什么图像对角线旋转?

Why is image rotated diagonally?

最近我尝试使用 ImageGrab 并复制 screen.But 当我编写以下代码并在绘制图像对角旋转后运行它。有谁知道为什么会这样?是 ImageGrab、pygame 还是其他问题?

到目前为止,这是我的代码:

from PIL import ImageGrab
import pyautogui
import pygame

colors=[]
WIDTH,HEIGHT=pyautogui.size()
image=ImageGrab.grab()
for x in range(0,WIDTH,5):
    for y in range(0,HEIGHT,5):
        color=image.getpixel((x,y))
        colors.append(color)
screen=pygame.display.set_mode((WIDTH,HEIGHT))
pixel_y=-5
pixel_x=0
for k,v in enumerate(colors):
    pixel_y+=5
    if pixel_y>HEIGHT:
        pixel_x+=5
        pixel_y=0
    pixel=pygame.Rect(pixel_x,pixel_y,5,5)
    pygame.draw.rect(screen,v,pixel)
    pygame.display.update(pixel)

您在一列中绘制的像素过多。变化:

if pixel_y>HEIGHT:

if pixel_y >= HEIGHT:

使用 //(底除法)运算符和 %(取模)运算符简化您的代码(% 运算符计算整数除法的余数):

h = HEIGHT // 5
for k, v in enumerate(colors):
    pixel = pygame.Rect(k // h * 5, k % h * 5, 5, 5)
    pygame.draw.rect(screen, v, pixel)
    pygame.display.update(pixel)