2013-05-04 3 views
1

Я хочу сохранить изображение с панели в растровое изображение, а затем я хочу загрузить сохраненное изображение после того, как моя форма выходит из режима минимизации.Как сохранить и загрузить панель?

Bitmap bmp = new Bitmap(panel1.Width, panel1.Height); 
panel1.DrawToBitmap(bmp, panel1.Bounds); 
bmp.Save(@"C:\Test"); 
panel1.BackgroundImage = Image.FromFile(@"C:\Test"); 

А какое событие следует использовать для минимизации события? P.S. Я начинаю C#.

+0

чтения между строк, это, кажется, что изображение «теряется», когда вы уменьшаете и восстановить форму ? Я предполагаю, что вы, вероятно, использовали CreateGraphics() для рисования. Используйте «e.Graphics» в событии Paint() вашей панели и сохраните данные о том, что рисовать на уровне класса, чтобы он автоматически перерисовывался при восстановлении формы. Если вы покажете нам, как вы изначально создали чертеж, мы можем помочь вам исправить это. –

ответ

0

EDITED

Рисунок содержимое вашей панели. Это должно быть сделано в обработчике события Paint, например:

private void panel1_Paint(object sender, PaintEventArgs e) 
{ 
    using (Pen p = new Pen(Color.Red, 3)) 
    { 
     // get the panel's Graphics instance 
     Graphics gr = e.Graphics; 

     // draw to panel 
     gr.DrawLine(p, new Point(30, 30), new Point(80, 120)); 
     gr.DrawEllipse(p, 30, 30, 80, 120); 
    } 
} 

Сохранение содержимого вашей панели в качестве изображения. Эта часть должна быть сделано в другом месте (например, при нажатии на кнопку «Сохранить»):

private void saveButton_Click(object sender, EventArgs e) 
{ 
    int width = panel1.Size.Width; 
    int height = panel1.Size.Height; 

    using (Bitmap bmp = new Bitmap(width, height)) 
    { 
     panel1.DrawToBitmap(bmp, new Rectangle(0, 0, width, height)); 
     bmp.Save(@"C:\testBitmap.jpeg", ImageFormat.Jpeg); 
    } 
} 
+0

Спасибо, но я только получаю изображение на белом фоне, я не получаю Графический рисунок, нарисованный на нем, используя e.drawline() –

+0

вот что я хочу сделать Я не хочу перерисовывать свою точку, используя метод onpaint Я хочу просто сохранить панель с рисунком, который я сделал с помощью мыши, а затем я могу загрузить сохраненное изображение с помощью кнопки «Загрузить», проблема, с которой я столкнулась, - сохранить. Я не хочу использовать метод onpaint –

+0

@HussainHalai См. мой обновленный ответьте, если это поможет вам принять его! – Obama

Смежные вопросы