【发布时间】:2020-04-14 00:53:16
【问题描述】:
将图像上传到表面并使用 get_view() 函数可以正常工作,并且我能够利用该函数的原始字节内容。但是,如果我尝试在旋转表面上 get_view() 它会失败并显示以下内容:(附加说明它不会在 90 度增量上失败)。 “ValueError:字节不连续”下面是简化形式的问题:
Python 版本 3.8.1
Pygame 版本 1.9.6
操作系统:Windows 10 专业版
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 和几个版本。在进一步追踪之后,我相信这是一些我无法解决的低级数学问题......每当发生这种连续错误时,内置函数中也会引发异常......
特别是“{'ArithmeticError': , 'AssertionError': , 'AttributeError': , 'BaseException': , 'BlockingIOError': , 'BrokenPipeError': , 'BufferError': , 'BytesWarning': , 'ChildProcessError': , 'ConnectionAbortedError': , 'ConnectionError': , 'ConnectionRefusedError': , 'ConnectionResetError': , 'DeprecationWarning': , ...}"
【问题讨论】:
-
您的代码对我有效且没有错误 - LInux Mint、Python 3.7、PyGame 1.9.6。也许您在不同的代码位置有问题。或者这只是您的系统上的问题。始终显示有问题的完整错误消息(不在评论中)
-
顺便说一句:对于变量使用
lower_case_names和仅对类使用UpperCaseNames有很好的规则 - 它有助于识别代码中的类。查看更多:PEP 8 -- Style Guide for Python Code -
我忘记了有问题的行....见 x =
-
FYI - 我用大约 10 种不同的语言(包括数据库)进行编程,虽然 Python 的风格点很好,但我不是全职的 Python 开发人员,所以我使用了一种我发现跨语言最便携的风格.
-
这不是我的代码......那只是为了测试......我在我的代码中使用了完全不同的格式...... clsClass、oObject 等......