为什么pygame.surface.get_view()仅在曲面旋转时失败



将图像上传到曲面并使用get_view((函数可以很好地工作,我可以利用该函数的原始字节内容。但是,如果我尝试在旋转的曲面上获取_view((,它会失败,原因如下:(另外注意,即使是90度增量,它也不会失败(。"ValueError:字节不连续"以下是简化形式的问题:

Python版本3.8.1

Pygame版本1.9.6

操作系统:Windows 10 Pro

import pygame as pg
Surf = pg.image.load('C:/TimW/Tmp_Images/Test3.png') # Works
Surf_View = Surf.get_view() # Works
Surf_New = pg.transform.rotate(Surf,10) #Works
Surf_New_View = Surf_New.get_view() #Works
x = Surf_New_View.raw  #Fails
print('done')

注:经过进一步测试。。。其他一些旋转角度也可以。我循环了360个角度,大约17个角度。我还尝试了32位python和几个版本。经过进一步的跟踪,我相信这是一些我无法解决的低级数学问题……每当发生这种连续错误时,内置程序中也会抛出异常…。

特别是"{'ArgisticError':,'AssertionError'::,'AttributeError':、'BaseException':,'BlockingIOError':,'BrokenPipeError':、缓冲区错误':、BytesWarning':、ChildProcessError:、ConnectionAbortedError":、ConnectionError:、Connection RejectedError:、ConnectionResetError:、DeprecationWarning'…}">

所有这些问题都得到了解决。我不知道为什么它会对rotate/get_view功能产生影响,但在加载图像时,必须使用convert_alpha。这是可选的,不确定为什么它解决了这个问题,但它确实解决了。

pg.image.load('C:/TimW/Tmp_Images/Test3.png'(.convert_alpha((

最新更新