Foros del Web » Programando para Internet » Python »

Invertir sprite

Estas en el tema de Invertir sprite en el foro de Python en Foros del Web. Buenas noches, estoy tratando de invertir el proceso de un sprite, es decir, cortar un sprite en trozos de A x B y que me ...
  #1 (permalink)  
Antiguo 29/01/2012, 17:01
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Invertir sprite

Buenas noches, estoy tratando de invertir el proceso de un sprite, es decir, cortar un sprite en trozos de A x B y que me guarde todas las imágenes generadas. He encontrado varios sitios webs para hacerlo, pero hay que subir la imagen, seleccionar el área a conservar y guardar la imagen. Para un sprite con muchos elementos es totalmente inviable
He pensado que a lo mejor Python puede ayudarme con esto, supongo que mediante PIL. He mirado por encima las docs pero no encuentro lo que necesito, ¿alguien podría indicarme exactamente qué parte leer, o qué módulo usar?
El objetivo es que, dándole un ancho y un alto, me recorte la imagen en trozos de esas dimensiones y guarde cada cacho.
Saludos y gracias (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #2 (permalink)  
Antiguo 29/01/2012, 17:11
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Invertir sprite

http://www.pythonware.com/library/pi...book/image.htm usaría la función crop.

Obviamente esto es solo para recortar un pedazo de imagen, el resto lo tendrías que hacer tu.
  #3 (permalink)  
Antiguo 31/01/2012, 14:56
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Invertir sprite

Perdón por el retraso, efectivamente el método era crop: me funcionó de perlas. Dejo aquí el script por si le sirve a alguien:
Código Python:
Ver original
  1. # -*- coding:utf-8 -*-
  2.  
  3. from PIL import Image
  4.  
  5. im, count = Image.open('image.png'), 0
  6.  
  7. while count*38 < 1000:
  8.     im.crop(
  9.         (0, count*38, 38, (count+1)*38)
  10.     ).save('crop_%s.png' % (count+1))
  11.     count += 1
En mi caso el sprite era vertical, y los sprites eran de 38x38. La imagen entera medía 38x1000, así que simplemente hay que ir dándole las coordenadas de cada crop en una tupla (left, top, right, bottom). Después sólo hay que guardar la imagen y aumentar count.
Nota: El método save hay que usarlo justo después de crop, porque crop devuelve la imagen cortada pero no corta la imagen original. Es decir:
Código Python:
Ver original
  1. im.crop(...)
  2. im.save(...)
Guardará la imagen original.
Saludos y gracias (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: invertir, sprite, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:07.