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