Dividir una imagen en Varias

25/09/2003 - 11:55 por Gandalf | Informe spam
Hola, tengo un Bitmap con varios botones y quisiera sacar cada uno para un
Bitmap independiente. Me gustaría que me comentarais si hay alguna forma
mejor de hacerlo que la que actualmente utilizo:

//Bitmap con todos los botones
bm=new Bitmap(GetType(),"botones.bmp");

//extraer primer botón
bmNada=new Bitmap(16,16);
Graphics grfx=Graphics.FromImage(bmNada);
Rectangle rect=new Rectangle(0,16*0,16,16);
grfx.DrawImage(bm,0,0,rect,GraphicsUnit.Pixel);
grfx.Dispose();

//extraer último botón
bmSinDescubrir=new Bitmap(16,16);
grfx=Graphics.FromImage(bmSinDescubrir);
rect.Y*15;
grfx.DrawImage(bm,0,0,rect,GraphicsUnit.Pixel);
grfx.Dispose();

Gracias y Un Saludo.
 

Leer las respuestas

#1 Leonardo Diez
25/09/2003 - 12:23 | Informe spam
Hola Gandalf,
No se a qué te refieres con una forma mejor, pero en pricipio podrías
utilizar un for:

const int CANT_BOTONES = 15;
Bitmap bm=new Bitmap(GetType(),"botones.bmp");

Rectangle rect=new Rectangle(0,0,16,16);

for (int i=0; i<CANT_BOTONES; i++) {
bmTemp=new Bitmap(16,16);
Graphics grfx=Graphics.FromImage(bmTemp);
rect.Y = 16*i;
grfx.DrawImage(bm,0,0,rect,GraphicsUnit.Pixel);
grfx.Dispose();
}

Con respecto a no crear un objeto Graphics para cada imagen, creo que no es
posible evitarlo.

saludos,
Leonardo Diez
MCSD -
Equipo Técnico Grupo Danysoft

"Gandalf" escribió en el mensaje
news:
Hola, tengo un Bitmap con varios botones y quisiera sacar cada uno para un
Bitmap independiente. Me gustaría que me comentarais si hay alguna forma
mejor de hacerlo que la que actualmente utilizo:

//Bitmap con todos los botones
bm=new Bitmap(GetType(),"botones.bmp");

//extraer primer botón
bmNada=new Bitmap(16,16);
Graphics grfx=Graphics.FromImage(bmNada);
Rectangle rect=new Rectangle(0,16*0,16,16);
grfx.DrawImage(bm,0,0,rect,GraphicsUnit.Pixel);
grfx.Dispose();

//extraer último botón
bmSinDescubrir=new Bitmap(16,16);
grfx=Graphics.FromImage(bmSinDescubrir);
rect.Y*15;
grfx.DrawImage(bm,0,0,rect,GraphicsUnit.Pixel);
grfx.Dispose();

Gracias y Un Saludo.


Preguntas similares