PyGame - получение размера загруженного изображения
Привет, хотя вы могли бы подумать, что есть аналогичный вопрос, мой отличается от этого.
Я пытаюсь загрузить изображение из каталога и установить размер экрана (автоматически) на размер загружаемого изображения как "фон".
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()
конечно, это неверно, поскольку переменные "width" и "height" не определены для использования "pygame.display.set_mode()".
Я не могу понять это, хотя я и решаю с помощью OO, но я просто не могу понять это. Любая помощь?
Спасибо:)
Ответы
Ответ 1
Перед использованием convert()
на любой поверхности экран должен быть инициализирован с помощью set_mode()
.
Вы можете загрузить изображение и получить его размер до set_mode()
, но convert()
нужно использовать после инициализации дисплея, например:
import pygame
pygame.init()
image = pygame.image.load("file_to_load.jpg")
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