none
Guardar un Dibujo hecho en un Control Panel RRS feed

  • Pregunta

  • Hola Buen día

    No se como guardar un dibujo hecho sobre un control panel, creo lineas y circulos sobre un control panel, porque sobre un picture box no puedo dibujar.

    bueno gracias por su ayuda

    saludos!!!

    • Cambiado Enrique M. Montejo martes, 8 de septiembre de 2015 15:30 Pregunta relacionada con controles de Windows Forms.
    viernes, 21 de agosto de 2015 1:28

Todas las respuestas

  • Suponiendo que el botton1 es el que tiene asignado el metodo guardar, sería así.

    private void button1_Click(object sender, EventArgs e)
            {
                //Incializa un componente SaveFileDialog.
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                //Cuando buscas archivos te muestra todos los .bmp.
                saveFileDialog.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
                //Titulo
                saveFileDialog.Title = "Guardar gráfico como imagen";
                // preguntamos si elegiste un nombre de archivo.
                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    //Extención del archivo por defecto segun el filtro del saveFileDialog
                    switch (saveFileDialog.FilterIndex)
                    {
                        case 1:
                            saveFileDialog.DefaultExt = "jpg";
                            break;
    
                        case 2:
                            saveFileDialog.DefaultExt = "bmp";
                            break;
    
                        case 3:
                            saveFileDialog.DefaultExt = "gif";
                            break;
                    }
    
                    //Obtenemos alto y ancho del panel
                    int width = panel1.Width;
                    int height = panel1.Height;
                    //Inicializamos un objeto BitMap con las dimensiones del Panel
                    Bitmap bitMap = new Bitmap(width, height);
                    //Inicializamos un objeto Rectangle en la posicion 0,0 y con dimensiones iguales a las del panel.
                    //0,0 y las mismas dimensiones del panel porque queremos tomar todo el panel
                    // o si solo queremos tomar una parte pues podemos dar un punto de inicio diferente y dimensiones distintas.
                         Rectangle rec = new Rectangle(0, 0, width, height);
                    //Este metodo hace la magia de copiar las graficas a el objeto Bitmap
                    panel1.DrawToBitmap(bitMap, rec);
                    // Y por ultimo salvamos el archivo pasando como parametro el nombre que asignamos en el saveDialogFile
                    bitMap.Save(saveFileDialog.FileName);
                }
            }

    miércoles, 27 de enero de 2016 19:36