首页 > 解决方案 > pygame 图像缩放失败

问题描述

我即将调整图像大小。这是代码:

def display_image(self):
    print('the original size of the image is: ' + str(self.image.get_rect().size))
    self.resize_image(self.image)
    print('the size after resizing is: ' + str(self.image.get_rect().size))
    #some other code in the function

def resize_image(self, image):
    ratio_w = image.get_width()/self.width  #self.width is the width of the screen
    ratio_h = image.get_height()/self.height  #self.height is the height of the screen
    ration = max(ratio_w, ratio_h)
    new_w = image.get_width()/ratio
    new_h = image.get_height()/ration
    image = pygame.transform.scale(image, (int(new_w),int(new_h)))

根据打印结果,图像的大小没有改变。

标签: pythonpygamescale

解决方案


resize_image,

image = pygame.transform.scale(image, (int(new_w),int(new_h)))

正在将参数重新分配给函数。它没有改变self.image

您可以返回新图像并将其分配回self.image.

def resize_image(self, image):
    #....
    return pygame.transform.scale(image, (int(new_w),int(new_h)))

def display_image(self):
    print('the original size of the image is: ' + str(self.image.get_rect().size))
    self.image = self.resize_image(self.image)
    print('the size after resizing is: ' + str(self.image.get_rect().size))
    #some other code in the function

推荐阅读