12/12/05

Crear un jpg desde C#


System.Drawing.Bitmap b = new System.Drawing.Bitmap(200,200);
System.Drawing.Graphics g = Graphics.FromImage(b);
g.DrawString("hola",new System.Drawing.Font("Arial",20),System.Drawing.Brushes.Red,new System.Drawing.Rectangle(0,0,100,100));
b.Save("c:\\borrame.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
b.Dispose();

2 comentarios:

  1. Buenas. Yo lo he hecho parecido por mi cuenta. pero tengo que cerrar la aplicación para abrir la imagen. No se que control es el que lo sigue usando y como liberarlo. Tal vez me puedas ayudar. c_generico es un Chart donde tengo graficado unas estadisticas que intento guardar en la imagen. Lo hace todo pero me queda algo usando la imagen que guardo.
    using (System.Drawing.Bitmap ImagenPanel = new Bitmap(c_generico.Width, c_generico.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb))
    {
    using (System.IO.MemoryStream STREAM = new System.IO.MemoryStream())
    {
    c_generico.DrawToBitmap(ImagenPanel, new Rectangle(0, 0, p_interiorIzquierdo.Width, p_interiorIzquierdo.Height));
    using (SaveFileDialog frm = new SaveFileDialog())
    {
    frm.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp";
    frm.Title = "Guardar imagen";
    frm.FileName = "Nueva Imagen";
    frm.ShowDialog();
    if (frm.FileName != null)
    ImagenPanel.Save(frm.OpenFile(), System.Drawing.Imaging.ImageFormat.Bmp);
    STREAM.Close();
    ImagenPanel.Dispose();
    }
    }
    }
    todo esto en un evento click de boton

    ResponderEliminar
  2. Lo siento. Por no ver el correo del comentario hasta ahora, y por no poder ayudarte.
    No veo el problema. Quizá esté en otro sitio.
    De hecho ...

    STREAM.Close();
    ImagenPanel.Dispose();

    ... deberían ser redundantes.
    Despues del los using el fichero debería estar accesible.
    Espero que ya lo hayas solucionado.
    Un saludo

    ResponderEliminar