¿sabeis de alguna herramienta que le indiques una imagen, ancho y alto para que te genere imagenes recortadas de la que le indicaste?
tengo el adobe photoshop pero como no ando con el nada no se si se puede o no hacer con el
saludos y gracias
En espera de una respuesta decente...
Hacer una herramienta de este tipo, si te limitas a lo que has dicho, es bastante simple, podrías hacerla en un rato tú mismo sin problemas. ;)
el problema de hacerla yo mismo es que tendria que guardar las imagenes en png con mascara y como no conozco el formato puede llevarme varios dias
saludos
con python, PIL unos crops y unos saves lo tienes en 10 minutos
el script:
import Image
im = Image.open("imagen.jpg");
pixel_x = 128;
pixel_y = 128;
x,y = im.size;
xl = range(0,x,pixel_x);
yl = range(0,y,pixel_y);
for x in xl:
for y in yl:
print x,y;
im2 = im.crop((x,y,x+pixel_x,y+pixel_y));
im2.save("imagen-%d-%d.jpg"% (x,y));
herramientas:
http://www.python.orgPIL:
http://www.pythonware.com/products/pil/python rocks :P
EDIT: encontré un bug, solucionado y testeado
En el script-fu de Gimp tienes una herramienta para tilear automáticamente.
¿y no existe una aplicacion sin hace falta de instalar python?, no ha todos nos gusta tener el python instalado y residente cuando le viene en gana
saludos
Ethernet te lo ha puesto a wevo....
pero si no quieres usar python.... veras q facil es, hazte en 5min un programita "tile-ador" en el lenguaje que prefieras y sobre el formato de imagen que controles o sea mas sencillo(un bmp por ejemplo). Despues, utiliza cualquier soft de dibujo para convertir tu PNG a tu formato, le pasas el tileador, y al resultado, otra vez con tu soft de dibujo, le cambias el formato, le pones mascaras, lo que quieras....
yo tengo un tileador para bmp y esa es la dinamica que utilizo...
:)
EDIT: mira, un soft comercial q lo mismo te vale por si estas vaguisimo total jejej
http://www.tilecreator.com/EDIT 2: menos mal que mi curiosidad me empujo a probar ese software jeje, parece que no sirve para lo que te dije, sorry...
Cita de: zupervaca¿y no existe una aplicacion sin hace falta de instalar python?, no ha todos nos gusta tener el python instalado y residente cuando le viene en gana
saludos
Python se ejecuta cuando lo lanzas tú, no se queda "residente" para nada. Símplemente te enseñaba un código que te puede resultar útil, lo tomas o lo dejas :)
ei no os confundais que os agradezco de veras el codigo que me habeis puesto para python, pero en principio de programarlo me gustaria hacerlo en .net con c# que estoy aprendiendo ahora
saludos
Había un programa q se llamaba tiler...
he hecho el codigo en c#, lo pongo por si alguien lo necesitara, no obstante hare una herramienta, si veis algo que se pueda cambiar para hacerla mejor avisarme, que en c# estoy muy verde
using System.Drawing;
namespace dib
{
class ImageToTile
{
// Imagen a trocear
public System.Drawing.Bitmap imageSource = null;
// Ancho y alto de el tamaño de troceo
public int widthTile = 16, heightTile = 16;
// Directorio destino
public string destinationPath = "";
// Formato final en que se guardara la imagen
public System.Drawing.Imaging.ImageFormat imageFormat = null;
// Realizar el recorte, retornar el numero de tiles generados
public int MakeTiles()
{
// Preparar datos
int nameToSave = 0;
Bitmap bmpToSave = new Bitmap(widthTile, heightTile);
Graphics bmpGraphics = Graphics.FromImage(bmpToSave);
Rectangle rect = new Rectangle(0, 0, widthTile, heightTile);
// Generar los tiles
for (rect.Y = 0; rect.Y < imageSource.Height; rect.Y += heightTile)
{
for (rect.X = 0; rect.X < imageSource.Width; rect.X += widthTile)
{
bmpGraphics.DrawImage(imageSource, 0, 0, rect, GraphicsUnit.Pixel);
bmpToSave.Save(destinationPath + "/" + nameToSave + "." + imageFormat.ToString(), imageFormat);
nameToSave++;
}
}
// Liberar memoria
bmpGraphics.Dispose();
bmpToSave.Dispose();
// Retornar el numero de tiles generados
return nameToSave;
}
}
}
saludos
pd: se me olvidaba, un ejemplo para hacerla funcionar
dib.ImageToTile imageToTile = new dib.ImageToTile();
imageToTile.imageSource = new Bitmap("C:/Documents and Settings/David/Mis documentos/Visual Studio 2005/Projects/pruebas/pruebas.png");
imageToTile.widthTile = imageToTile.heightTile = 16;
imageToTile.destinationPath = "C:/pruebatiles";
imageToTile.imageFormat = System.Drawing.Imaging.ImageFormat.Png;
imageToTile.MakeTiles();
Estaba a punto de recomendarte la
FreeImage, que es muy facil de usar, pero ya veo que en C# todo es mas mari.... digo... facil y eso....
De todas formas, pasando a lo que estas haciendo, quieres tener cada tile en un fichero grafico distinto?? por que lo usual seria tener varias tiles (todas las de un nivel o plano de scroll) en un mismo fichero, y desde ahi ir haciendo copys con las regiones correspondientes. Estos jovenes......
Saludos.
asi es lo correcto, pero en j2me no puedo hacer recortes <_<
saludos
no lo sabia.... :ph34r:
ya he hecho la herramienta de generar tiles en plan visual si la quereis descargar podeis hacerlo directamente desde aqui
dibTiles o desde mi pagina web en el apartado de proyectos
proyectossaludos y que a muchos os sirva para algo :lol:
pd: este mini proyecto me ha servido para ir haciendome poco a poco al c-sharp con windows form y la verdad es que esta mucha mas currado todo que en anteriores versiones
Cita de: _Greyno lo sabia.... :ph34r:
perdona, realmente si se puede recortar, pero si el png tiene mascara la pierdes, yo no se como resolver este problema con lo que siempre he hecho archivos por separado, ademas al final los ejemplos de como hacer mapas con tiles para j2me usan archivos sueltos con lo que llegue a la conclusion de que con midp 1.0 lo mejor es hacerlo asi aunque pierdas bytes por los nombres de los archivos entre otras cosas
para recortar una imagen pongo un codigo en plan cutre, pero recordar que si el png tiene mascara esta se pierde, si alguien sabe resolver el problema ya sabe, a decirlo jjeje
ImageList imgList = new ImageList(1);
imgList.AddImage( 0, "/tiles/bosque.png" );
Image bloque1 = Image.createImage( 32, 32 );
Graphics gbloque1 = bloque1.getGraphics();
gbloque1.drawImage( imgList.GetImage(0), -32, 0, Graphics.TOP | Graphics.LEFT );
ImageList es una clase que tengo para la lectura de imagenes, el -32,0 hace que pinte fue del objeto graphics y asi queda recortado el cacho que quiero en este caso
saludos
No entiendo para qué quieres recortarlas desde el propio programa.
No sé, mételas en el JAR en la forma que las necesites, juntas o separadas... ¿no?
es cuidar al grafista y no darle trabajo que se puede hacer con unas lineas de codigo ;)