enregistrement d'image à partir d'un contrôle pictureBox en c#

Mon programme permet à l'utilisateur de dessiner dans une zone de l'image qui est en quelque sorte une manière similaire à MS paint, et maintenant je suis en essayant de sauver la pictureBox comme une .fichier jpg, mais je vais avoir la valeur null erreur d'exception lorsque vous essayez de le faire.

Edit: faut mentionner que c'est une exception NullReferenceException

Voici mon bouton enregistrer où je reçois l'erreur d'exception:

   private void button3_Click(object sender, EventArgs e)
    {
        pictureBox1.Image.Save(@"C:\New folder\picture.jpg", ImageFormat.Jpeg);
    }

et voici le reste de mon code:

    public Form2()
{
InitializeComponent();
//creates items for combobox brush sizes
for (int i = 1; i <= 20; i++)
{
string[] numbers = { i.ToString() };
comboBox1.Items.AddRange(numbers);
}
}
bool paint = false;
SolidBrush color = new SolidBrush(Color.Black);
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
paint = true;
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
paint = false;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (paint == true)
{
int brushSize = Convert.ToInt32(comboBox1.SelectedItem);
Graphics g = pictureBox1.CreateGraphics();
if (comboBox1.SelectedIndex > 0)
{
g.FillEllipse(color, e.X, e.Y, brushSize, brushSize);
}
else
{
g.FillEllipse(color, e.X, e.Y, 10, 10);
}
g.Dispose();
}
}
//button that opens colour dialog box
private void button1_Click_1(object sender, EventArgs e)
{
ColorDialog cld = new ColorDialog();
if (cld.ShowDialog() == DialogResult.OK)
{
color = new SolidBrush(cld.Color);
}
}
//Button that clears pictureBox
private void Button2_Click_1(object sender, EventArgs e)
{
Graphics g1 = pictureBox1.CreateGraphics();
g1.Clear(pictureBox1.BackColor);
}
  • Êtes-vous sûr que le Button_Click_1 ne pas se produire avant que vous essayez d'enregistrer l'image ?
  • Comment est-ce d'abord cliquez sur le bouton effet d'enregistrer cliquez sur le bouton?
  • Vous n'avez jamais réellement affecté la PictureBox.Propriétés de l'Image, en choisissant de peindre directement à la place. Ce qui fonctionne bien. Cette propriété est toujours null si, kaboom lorsque vous essayez de l'enregistrer.
InformationsquelleAutor Rin | 2013-09-01