Pygame旋转导致图像口吃

时间:2012-05-24 21:50:39

标签: python pygame

老实说,我不知道为什么这不起作用。旋转会导致图像不断向上和向下缩放。我环顾四周,没有找到解决问题的方法。 主http://tinypaste.com/1c5025fa 模块http://tinypaste.com/f42f9c58

也有人可以解释为什么这个程序的盒子突然停止旋转? 等'http://tinypaste.com/82b3b30e'(删除引号,我不允许发布2个以上的超链接)

1 个答案:

答案 0 :(得分:1)

据我所知,你所看到的缩放是旋转操作如何工作的一种神器。旋转矩形时,边界框必须大于原始矩形。例如,参见下图中的蓝色矩形。 R是矩形的半径...所以当它旋转时,矩形会扫出第二个图像中红色圆圈所覆盖的区域。旋转的边界框现在是灰色矩形。 pygame必须填充红色区域和灰色区域。 pygame用什么颜色来填充填充区域?

pygame.transform.rotate文档说...

“除非以90度为增量旋转,否则图像将被填充得更大以保持新尺寸。如果图像具有像素alpha,则填充区域将是透明的。否则,pygame将选择与Surface颜色键或topleft像素值。“

因此,解决方案是明确设置图像的颜色键或alpha值(在您的情况下,构建saved_image表面时)。然后,当saved_image旋转时,新生成的图像将具有填充区域填充适当的颜色。

试一试,看看是否有效。

enter image description here