Cargar imagen con pygame

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

Cargar imagen con pygame

Notapor Xisco » Sab Abr 25, 2009 6:12 pm

Hola me gustaria saber donde poner la imagen en este caso

"ball.png" dentro de Windows, para que pigame la detecte.

Directamente no la reconoce y si pongo la ruta po eje.

"Mis documentos/"ball.png" tampoco la reconoce.



Gracias
Xisco
 
Mensajes: 11
Registrado: Sab Abr 25, 2009 6:02 pm

Notapor endaramiz » Sab Abr 25, 2009 7:25 pm

Hola, lo más fácil es que pongas la imagen en la misma carpeta donde tengas el archivo. Luego la puedes cargar sin poner la ruta:
Código: Seleccionar todo
imagen = pygame.image.load("ball.png")


Si quieres tener las imágenes metidas en una carpeta llamada img, dentro de la misma carpeta que el código. Se hace con:
Código: Seleccionar todo
imagen = pygame.image.load("img/ball.png")


Primero prueba con el caso sencillo y, si sale bien, luego pruebas la otra forma.

Saludos.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Cargar imagen pygame

Notapor Xisco » Dom Abr 26, 2009 7:44 am

Ya, pero el tema que no se donde colocar la imagen, dentro de la

carpeta de python 2.4 o dentro de C:,


Cuando escribo:

imagen=pygame.image.load("ball.png")

no la importa

y cuando escribo

imagen=pygame.image.load("Mis documentos/"ball,png")

tampoco

en el primer caso pongo la imagen dentro de la carpeta de python 2.4

en el segundo dentro de Mis documentos


Como escribir el codigo es facil, pero entender donde lo busca

todavia no controlo.

Gracias por tu ayuda, a ver si puedo verlo mejor
Xisco
 
Mensajes: 11
Registrado: Sab Abr 25, 2009 6:02 pm

Notapor Nato » Dom Abr 26, 2009 10:16 am

Tienes que poner la imagen en la misma carpeta donde esta el codigo que la importa y pones imagen=pygame.image.load("ball.png") pygame empieza a uscar desde la carpeta donde esta el codigo osea que si haces imagen=pygame.image.load("Mis documentos/ball.png") buscara en "Ruta donde se haya el codigo/Mis documentos/ball.png"
Imagen
Avatar de Usuario
Nato
 
Mensajes: 26
Registrado: Sab Jul 21, 2007 11:11 am
Ubicación: Las Palmas, España

Notapor endaramiz » Dom Abr 26, 2009 10:53 am

endaramiz escribió:Hola, lo más fácil es que pongas la imagen en la misma carpeta donde tengas el archivo. Luego la puedes cargar sin poner la ruta:
Código: Seleccionar todo
imagen = pygame.image.load("ball.png")

Quizás no haya expresado con claridad: Lo más fácil es que pongas la imagen en la misma carpeta donde tengas el archivo con el código que estás programando (donde escribes lo de pygame.image.load...) de extensión .py.
Para hacer esto, tienes que crear un archivo .py con el código del juego y luego ejecutarlo.

Saludos.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Notapor Dokan » Dom Abr 26, 2009 5:54 pm

Si estás haciendo pruebas desde el intérprete, que me parece que ese es el problema por el que no acabas de comprender lo que te dicen los compañeros prueba a poner rutas completas. Para que te sirva de ejemplo acabo de hacer una prueba en el intérprete desde linux:
Código: Seleccionar todo
user@Desktop:~$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
>>> imagen = pygame.image.load('SANY0001.JPG')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pygame.error: Couldn't open SANY0001.JPG
>>> imagen = pygame.image.load('/home/user/Desktop/100SANYO/SANY0001.JPG')
>>> import sys
>>> import base
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named base
>>> sys.path.append('/home/user/programacion/python')
>>> import base
>>>


Como ves sólo ha funcionado cuando he utilizado la ruta completa, que en sistemas basados en msdos como windows es completamente diferente a linux (si no recuerdo mal 'c:/Mis documentos/Mis imágenes/ball.png').
Si guardas todo el código en un archivo de texto plano (como cualquier archivo.txt) y le das la extensión al guardar de python (archivo.py) puedes importarlo desde el intérprete agregando la carpeta donde se encuentra el archivo a la ruta de busqueda de «import» (tal como he hecho para el archivo /home/user/programacion/python/base.py) para hacer las pruebas que quieras. De esta forma es suficiente con guardar la imagen en el mismo directorio del archivo.py y hacer lo que te dicen endaramiz y Nato para importar la imagen. Para más info sobre la ruta de búsqueda de «import» mira este capítulo del libro «Inmersión en Python».
Avatar de Usuario
Dokan
 
Mensajes: 143
Registrado: Lun Dic 03, 2007 10:40 pm

Notapor Xisco » Lun Abr 27, 2009 9:26 am

Hola a todos, he probado a abrir el archivo por ejemplo ball.png

con diferentes formas de codigo y no lo he conseguido.

He guardado el codigo y despues he puesto el archivo de la imagen

ball.png dentro de la misma carpeta, he probado donde lo guarda

python por defecto o sea en la misma carpeta python 2.4.1, he guardado

el programa en el escritorio y al lado he puesto la imagen y tampoco.

He intentado especificar la ruta hacia mis documentos y no la carga

He utilizado el sistema sys,path.append y no la carga.

Lo he intentado desde py.scripter y tampoco.


Creo que debe de haber algún problema sencillo de que no me

haya dado cuenta.

el codigo escrito es:


desde la idle y desde pyscripter:


>>> import pygame
>>>pygame.init()

>>>size=400,400

>>>screen=pygame.display.set_mode(size)

>>>ball=pygame.image.load("ball.png")

Ahora le doy a guardar y junto a este archivo guardado

coloco la imagen 'ball.png' y sin embargo no la carga:


Traceback (most recent call last):
File: "C:/Python24/x2py",line 8, in -toplevel-
ball=pygame.display.load('Mis documentos/ball.png')
error: Couldn't open Mis documentos /ball.png

Se que es un poco complicado desde fuera, pero bueno de todas

formas muchas gracias por el interes de todos. Supongo que

ya lo sacaré con el tiempo, revisaré toda la imformación que me

habeis dado haber si doy con el tema.


Gracias
Xisco
 
Mensajes: 11
Registrado: Sab Abr 25, 2009 6:02 pm

Notapor Juanxo » Lun Abr 27, 2009 3:29 pm

Buenas, parece mu raro.... prueba a ver si descargando juegos de otras personas te da tambien error al cargar las imagenenes de los juegos.


File: "C:/Python24/x2py",line 8, in -toplevel-
ball=pygame.display.load('Mis documentos/ball.png')


Fijate que estas dos rutas son distintas...
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Notapor Dokan » Mié Abr 29, 2009 9:50 pm

Prueba especificando la ruta completa desde c:, por ejemplo 'c:/Mis documentos/ball.png'.
Si no funciona busca más información sobre como interactúa python en windows con las carpetas y las rutas, y haz pruebas, muchas pruebas.
Ánimo!
Avatar de Usuario
Dokan
 
Mensajes: 143
Registrado: Lun Dic 03, 2007 10:40 pm

Notapor yasser_001200 » Jue Sep 03, 2009 6:01 pm

MI problema es el siguiente:

obtengo el ancho y alto de la imagen pero no sé cómo dársela a la pantalla principal.
O sea. Quiero que la pantalla o formulario tenga las mismas dimensiones que la imagen que he cargado
Vienbeni2 a mi mundo....WAJAJAJAJAJA
yasser_001200
 
Mensajes: 46
Registrado: Lun May 19, 2008 3:28 pm

clases y pygame

Notapor yasser_001200 » Jue Nov 26, 2009 4:13 pm

Esto no tiene nada que ver con el post pero quiero ahorrar espacio sin ncesecidad de asuntos innecesarios, perdón si esto causa algún problema. Miren este ejemplo:

import sys,os,pygame
from pygame.locals import *

def LoadImage(img,nombre):
img=pygame.image.load(nombre)
return img, img.get_rect()

class Yasser(pygame.image):
#*********inicia instancia**************
def __init__(self):
pygame.image.__init__(self)
#*********Carga IMagen******************
def cargaImagen(self,snombre):
self.snombre=snombre
recta=LoadImage(self.image, self.snombre)
print recta
#********Actualizar y redibujar*********************
def Flipa(self):
pygame.display.flip()
# *******dibujarla en la pantalla***********************
def Dibuja(self,pantalla,x,y):
self.x=x
self.y=y
self.pantalla=pantalla
self.pantalla.blit(self.image,(x,y))
#********salir del programa****************************
def VeteACasa(self):
print "Ya me voy amigos"
sys.exit(0)
quit()

pygame.init()
yassergamer=Yasser()
screen=pygame.display.set_mode((800,600))
pygame.display.set_caption('Clases con python y pygame')
yassergamer.Flipa()
yassergamer.cargaImagen('cap1.jpg')
recta=yassergamer._getBounds()
print recta
yassergamer.Dibuja(screen,0,0)
while True:
yassergamer.Flipa()
for eventos in pygame.event.get():
if eventos.type==pygame.QUIT:
yassergamer.VeteACasa()



Me da este error:
Traceback (most recent call last):
File "C:\Documents and Settings\yasser\Escritorio\setup.py", line 8, in <module>
class Yasser(pygame.image):
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
Vienbeni2 a mi mundo....WAJAJAJAJAJA
yasser_001200
 
Mensajes: 46
Registrado: Lun May 19, 2008 3:28 pm


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron