Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Impresión con imagen en memoria en c#

Iniciado por adam17, 07 de Octubre de 2007, 09:41:12 PM

« anterior - próximo »

adam17

Hola.

Estoy haciendo un programa que intenta crear una imagen para impresión en C# y tengo un pequeño problema.
Quiero imprimir una página pero la página en cuestion no se ve siempre en la pantalla. Me gustaria saber si se puede hacer una imagen en la memoria a partir de las otras imagenes que ya tengo y asi no perder la calidad de impresión, y sobretodo, cómo podria hacerlo.

Gracias de antemano.

adam17

Lo que tengo pensado es crear un Graphic y apatir de el un Bitmap, tengo otros 6 Bitmaps que nececito dibujar en la imagen principal. Imagine que con Graphic.DrawImage podria hacerlo facil pero no se como grabar la nueva informacion de las 6 imagenes en el Bitmap principal, he leido algo sobre stream y salvarlo pero no entiendo muy bien el concepto, alguien me podria explicar o decirme como dibujo sobre otra imagen pero que quede reflejado para hacer una impresion de la imagen
Gracias  :oops:

shephiroth

Buenas. No te puedo dar funciones pq ahora no las tengo  mano, pero te doy la idea:

Para hacer lo q quieres tienes que seguir varios pasos:
1- Cargar en tu programa todas las imagenes que vayas a usar. Para esto puedes usar alguna libreria o las funciones propias de windows.
2- Crear un BITMAP vacio en el cual dibujaras tu imagen. Lo creas con el tamaño deseado, y una vez creado obtienes acceso a los graficos (getGraphics suele ser). una vez ya tienes el objeto Graphics puedes dibujar sobre esta "superficie" la imagen que tu quieras utilizando las cargadas en el paso 1.
3- Una vez tienes el BITMAP dibujado (te recuerdo, en memoria, si lo quieres visualizar tendrias que dibujar en pantalla con el graphics correspondiente) tienes que guardar la imagen. Esto ya cambia depende de la extension q quieras usar. Algunas librerias te piden el BITMAP, otras tienes que pasarle los raw...

SUERTE!!

adam17

Hola de nuevo.

Muchas gracias por la respuesta pero sigo teniendo un problemilla.
No se usar el getGraphics, solo encuentro el Graphics.DrawImage y me lo dibuja en pantalla pero no queda reflejado en la Imagen.

Lo que tengo es mas o menos asi.


public void CrearImagen()
   {
      Graphics g = this.CreateGraphics();
      imagen = new Bitmap(2480, 3508, g);
      Graphics g2 = Graphics.FromImage(imagen);
      Rectangle rec = new Rectangle(149,108, 2480,3508);
      //ArImg[0] es una de las imagenes quiero dibujar en la imagen grande
      g2.DrawImage(ArImg[0], rec,rec, GraphicsUnit.Pixel);
      MemoryStream mm = new MemoryStream();
      imagen.Save(mm, System.Drawing.Imaging.ImageFormat.Jpeg);
   }


Muchas gracias otra vez  :oops:






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.