Python Pygame(基础)
我有一个矩形:Python Pygame(基础),python,pygame,Python,Pygame,我有一个矩形: rect = pygame.Rect(10, 20, 100, 200) 和图像: img = pygame.image.load('ace_of_hearts.jpg') 如何更改较大(或较小)的图像以适合矩形(具有图像的初始比率)?您可以这样做: rect = pygame.Rect(10, 20, 100, 200) img = pygame.image.load('ace_of_hearts.jpg') img = pygame.transform.scale(img
rect = pygame.Rect(10, 20, 100, 200)
和图像:
img = pygame.image.load('ace_of_hearts.jpg')
如何更改较大(或较小)的图像以适合矩形(具有图像的初始比率)?您可以这样做:
rect = pygame.Rect(10, 20, 100, 200)
img = pygame.image.load('ace_of_hearts.jpg')
img = pygame.transform.scale(img, rect.size)
# rect.size returns (100, 200)
希望这有帮助 这是可行的,但图像的高度和重量的比率正在变化,如何在不进行长时间计算的情况下解决这个问题(测量图像的高度和重量,然后测量矩形的高度和重量,找到图像和矩形的比率等等…)我想要一个简单的解决方案,但没有运气。您的示例非常好,我只将Pt.smoothscale(surface,rounded)更改为pygame.transform.smoothscale(surface,rounded)。非常感谢你的关注,我会用这个。太好了。是的,我会把它改成
pygame.transform
,很抱歉
def resizeInto(surface, rect):
surSize = list(surface.get_size())
rectSize = rect.size
for i in (0, 1):
if surSize[i] > rectSize[i]:
surSize[1 - i] = 1. * surSize[1 - i] / surSize[i] * rectSize[i]
surSize[i] = rectSize[i]
if surSize != surface.get_size():
rounded = [int(round(s)) for s in surSize]
surface = pygame.transform.smoothscale(surface, rounded)
return surface