7
votes

Comment faire apparaître une image dans Python / Pygame

J'essaie d'apprendre à faire un jeu de base à l'aide de Pygame. Je veux importer et afficher une image au format .png. Jusqu'à présent, ma tentative a été: xxx

l'image (clouds.png) est dans le même dossier que le fichier. Lorsque j'essaie d'exécuter cela, je reçois une erreur: xxx


10 commentaires

Avez-vous essayé de donner la voie absolue à l'image? Vraisemblablement: "C: \ Utilisateurs \ Enrique \ Dropbox \ Clouds.png"


Votre boîte de python est-elle avec support PNG?


Votre Clouds.png est-elle nommée Clouds.png? / Quelque problème de capitalisation?


Où puis-je ajouter le chemin absolu?


et non j'ai le nom du fichier correct


De plus, votre «blanc» est principalement rouge.


Avez-vous essayé de charger un BMP? Si vous pouvez charger un BMP mais pas un PNG, il semblerait que vous ne disposez pas de support PNG compilé.


malade essayer ça ... et oui je sais que mon blanc est vraiment rouge (je plaisante simplement avec des couleurs)


D'accord. Changer l'image en .BMP ne provoque aucune erreur. Maintenant, comment puis-je obtenir l'image pour afficher? L'image est également 640 x 480 - une fois que le programme est exécuté, il affiche la couleur rouge (nommée White), les choses ne sont pas réactives


Vous devez la définir sur une variable, puis appeler l'écran.blit () dessus


4 Réponses :


7
votes

Vous allez. Il bloque l'image à 0,0. Votre autre problème est que votre pyimage ne semble pas être construit avec le support PNG

import pygame
from pygame.locals import*
img = pygame.image.load('clouds.bmp')

white = (255, 64, 64)
w = 640
h = 480
screen = pygame.display.set_mode((w, h))
screen.fill((white))
running = 1

while running:
    screen.fill((white))
    screen.blit(img,(0,0))
    pygame.display.flip()


3 commentaires

ne vous inquiétez pas, je suis sûr que malade avoir beaucoup de questions demain


N'importe quand. En outre, voici une assez bonne introduction à pygame: Pygame.org/docs/Tut/Intro/ intro.html , et il devrait couvrir tout ce que vous faites ici - c'est là que j'ai appris.


Notez que vous devriez généralement appeler le Convertir ou convert_alpha méthode de l'image chargée (pygame.surface) car cela améliorera énormément les performances, par exemple img = pygame.image.load ('clouds.bmp'). Convertir () .



2
votes

Voici un bloc de traitement d'image que j'utilise dans mes jeux: xxx

vous pouvez copier-coller ceci dans n'importe quel jeu et cela fonctionnera. OS et sys doit être importé dans votre jeu ou autre chose ne fonctionnera pas.


0 commentaires

0
votes
import pygame as pg

pg.init(  )

screen = display.set_mode( ( 460 , 640 ) )

def picture( images , x , y , width , height , angle , horizontal_flip , vertical_flip ):

    images1 = image.load( images ) # loading image

    images2 = transform.scale( images1 , ( width , height ) ) # changing size

    images3 = transform.rotate( images2 , angle ) # changing angle 0 - 360 degree

    images4 = transform.flip( images3 , horizontal_flip , vertical_flip ) # horizontal or vertical flip - True or False

    images4rect = images4.get_rect(  )

    images4rect.x = x # setting x

    images4rect.y = y # setting y

    screen.blit( images4 , images4rect ) # image blit

while True:
    screen.fill( ( 0 , 0 , 0 ) )

    images = "image.png" # image name

    x = 100 # x-axis

    y = 100 # y-axis

    angle = 0 # 0 - 360

    horizontal_flip = False # True

    vertical_flip = False # True

    width = 200 # width of image

    height = 150 # height of image

    picture( images , x , y , width , height , angle , horizontal_flip , vertical_flip )

    pg.display.flip(  )

1 commentaires

Bonjour, voulez-vous ajouter des détails et des hypothèses que vous avez faite dans le programme comme la résolution doit être 460x640, quel est le chemin d'accès à l'image, si l'image source est de résolution différente de ce qui se passe, etc., ce serait plus complet et serait une réponse complète pour les personnes à comprendre et à consommer facilement. Bienvenue dans le débordement de pile.



0
votes

Vous allez, voici comment je le ferais. XXX

J'espère que cela vous aide!


0 commentaires