PyGame - 获取加载图像的大小

时间:2013-10-31 19:42:14

标签: python image oop pygame

您好,即使您可能认为存在类似的问题,但我的情况与this非常不同。

我正在尝试从目录加载图像,并将我的屏幕尺寸(自动)设置为正在加载的图像大小为“背景”。

import pygame
import sys
from pygame.locals import *

image_resources = "C:/Users/user/Desktop/Pygame App/image_resources/"

class load:
    def image(self, image):
        self.image = image
        return (image_resources + image)
    def texture(self, texture):
        self.texture = texture
        return (image_resources + texture)

bg = load().image("bg_solid_black.jpg")

pygame.init()

#screen = pygame.display.set_mode((width,height),0,32)

#background = pygame.image.load(bg).convert()

#width = background.get_width()
#height = background.get_height()

我用“load()”类加载的图像被设置为变量“bg”,我想使用我加载的任何大小作为“bg”来确定窗口的大小。如果你试图移动

background = pygame.image.load(bg).convert()

width = background.get_width()
height = background.get_height()

除此之外:

screen = pygame.display.set_mode((width,height),0,32)

PyGame返回一个错误,其中指出未设置显示模式。如果我这样做:

screen = pygame.display.set_mode((width,height),0,32)

background = pygame.image.load(bg).convert()

width = background.get_width()
height = background.get_height()

当然,事实并非如此,因为没有为“pygame.display.set_mode()”使用变量“width”和“height”。

我似乎无法弄明白这一点,我虽然通过OO方式解决,但我似乎无法弄明白。有什么帮助吗?

谢谢:)

1 个答案:

答案 0 :(得分:10)

在任何表面上使用convert()功能之前,需要初始化屏幕。

您可以在set_mode之前加载图片,获取尺寸,然后在初始化显示后convert ,如下所示:

import pygame

pygame.init()

image = pygame.image.load("file_to_load.jph")
print image.get_rect().size # you can get size

screen = pygame.display.set_mode(image.get_rect().size,0,32)

image = image.convert() # now you can convert