pygame.error Неподдерживаемый формат изображения

запускаю Python 3.3.0 с pygame '1.9.2pre', следуя учебному пособию, новичок в python, честно говоря, не вижу, где я ошибся, выглядит так же, как в учебнике, однако ему уже 4 года. Спасибо за помощь!

Я получаю сообщение об ошибке - неподдерживаемый формат изображения для обоих. Я пробовал jpg и png, спецификация версии говорит, что поддерживает их оба.

bif ="bg.jpg"
mif ="man.jpg"
import pygame, sys
from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((1100,750),0,32)
background = pygame.image.load(bif).convert()
mouse_c = pygame.image.load(mif).convert_alpha()


Running = True

while Running:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            Running = False
            sys.exit()
            break

    screen.blit(background,(0,0))

    x,y = pygame.mouse.get_pos()
    x -= mouse_r.get_width()/2
    y -= mouse_r.get_height()/2

    screen.blit(mouse_r,(x,y))

    pygame.display.update()

person user2233480    schedule 19.08.2013    source источник


Ответы (2)


Я бы предположил, что окно pygame не закрывается из-за ошибки в вашем коде. Вы можете выйти из оболочки python, чтобы выйти из окна pygame, но здесь ошибка является основной проблемой.

Если вы импортируете изображения таким образом, убедитесь, что изображения находятся в той же папке или месте, что и ваш файл .py. Я не понимаю, откуда вы взяли mouse_r.

Попробуй это:

import pygame, sys
from pygame.locals import *



pygame.init()



screen = pygame.display.set_mode((1100,750),0,32)

background = pygame.image.load("bg.jpg").convert()
mouse_c = pygame.image.load("man.jpg").convert_alpha()

Running = True

while Running:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            Running = False
            sys.exit()
            break

    screen.blit(background,(0,0))

    x,y = pygame.mouse.get_pos()
    x -= screen.get_width()/2
    y -= screen.get_height()/2

    screen.blit(mouse_c,(x,y))

    pygame.display.update()
person Greg Peckory    schedule 19.08.2013
comment
На данный момент могу порекомендовать 2 варианта. Полностью удалите pygame и переустановите, используя эту ссылку здесь: lfd.uci.edu/ ~gohlke/pythonlibs/#pygame ... где вы можете получить pygame для python 3.3.0 ... Откройте свои изображения в редакторе изображений (xnView) и сохраните как тип изображения bmp, чтобы вы могли затем загрузить в pygame без проблем - person Greg Peckory; 19.08.2013
comment
С изображениями в формате bmp? Если вы запустите оболочку Python, import pygame, и запустите функцию pygame.image.get_extended(), какое число она вернет? - person Greg Peckory; 19.08.2013
comment
Это должно быть правильно. Возвращаемое значение 1 указывает, что вы должны иметь возможность загружать все форматы изображений. Боюсь, я не понимаю, в чем проблема. - person Greg Peckory; 19.08.2013

Возможно, вы использовали здесь неправильное имя переменной:

x,y = pygame.mouse.get_pos()
x -= mouse_r.get_width()/2
y -= mouse_r.get_height()/2

screen.blit(mouse_r,(x,y))

Я уже просматривал тот же урок и мне кажется, что mouse_r должно быть mouse_c.

Редактировать:

Попробуйте использовать полное имя каталога при загрузке изображений:

import os
bif = os.getcwd() + "\\bg.jpg"
mif = os.getcwd() + "\\man.jpg"
person enugot    schedule 19.08.2013
comment
Кажется, настоящая проблема здесь в том, что pygame не поддерживает формат jpeg, так как код в моем ответе тоже не работает. В документации Pygame указано, что pygame будет поддерживать только типы изображений bmp, если не построен с полной поддержкой изображений. Но это не проблема ни меня, ни многих других. Вопрос в том, почему? - person Greg Peckory; 19.08.2013