Возможно сохранять контент панели в бинарном файле?

В связи с моим вопросом: Возможно сохранять контент панели в бинарном файле?

То, в чем я нуждаюсь, состоит в том, чтобы знать, возможно ли и как он мог бы разрабатывать это. А именно у меня есть панель, на которой я могу рисовать. После рисуя мне хотелось бы мочь сохранять то, что вырисовалось в бинарном файле, что потом другая программа сможет собирать это и читать это.

Это в C# winform

Сохраняй панель но не контент Панели (pnl_Draw):

 //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 = pnl_Draw.Width;
            int height = pnl_Draw.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
            pnl_Draw.DrawToBitmap(bitMap, rec);
            // Y por ultimo salvamos el archivo pasando como parametro el nombre que asignamos en el saveDialogFile
            bitMap.Save(saveFileDialog.FileName);

Благодаря Леандро я смог видеть, что он использовал неправильный метод. Чтобы сохранять контент нужно рисовать Paint

2
задан 13.04.2017, 16:00
1 ответ

Ты мог бы возвращать изображение контроля используя DrawToBitmap ()

Контроль. DrawToBitmap Method

Как только у тебя было изображение ты можешь записывать в archvo с методом Save ()

Bitmap bmp = new Bitmap(Panel1.ClientRectangle.Width, Panel1.ClientRectangle.Height);
Panel1.DrawToBitmap(bmp,new Rectangle(0,0,bmp.Width,bmp.Height));

bmp.Save("image.png", ImageFormat.Png);

Saving image to file

3
ответ дан 24.11.2019, 14:58
  • 1
    S и # 237; вот то, что я делаю для, когда я хочу сохранять изображение, которое я рисую в панели. То, за чем оно последует, что не s и # 233; C и # 243; mo последовательно преобразовывать это. Я достаточно начинающий, что я хочу изучить, так это, чтобы мочь: - Сохранять то, что я рисую в панели. - Сохранять последовательно преобразованный файл. – Alejandro Maisonnat 21.01.2016, 01:05
  • 2
    как последовательно преобразовывать это? изображение, если уже это бинарный файл, ничего не должны последовательно преобразовывать, bitmap - serializacion изображения внутри панели – Leandro Tuttini 21.01.2016, 01:07
  • 3
    Апрель и # 237; в какую-то форму, от которой было возможно бы предохранять стоимость, которую я рисую, а именно, считать зеленые точки, и Ваш x, y (схвати и # 237; с другими цветами) – Alejandro Maisonnat 21.01.2016, 01:11
  • 4
    Чтобы сохранять файл я использую этот метод. SaveFileDialog Bitmap – Alejandro Maisonnat 21.01.2016, 01:18
  • 5
    Если ты строишь изображение посредством кода по мере того, как ты использовал компоненты GDI, ты смог бы в параллели определять структуру классов, которая отражала бы эту же самую операцию. Или же если ты рисуешь квадрат в таком положении с так стороны, ты мог бы создавать класс Прямоугольник со свойствами, который определял бы эту же самую информацию. Когда ты заканчиваешь рисунок, ты мог бы последовательно преобразовывать эту структуру уже будьте в xml или в бинарный. Не, если это, куда ты обозначаешься? – Leandro Tuttini 21.01.2016, 01:27