C# 保存图片框图像

C# 保存图片框图像,c#,save,picturebox,C#,Save,Picturebox,我已经写了这段代码,但它抛出了一个一般性错误 “对象引用未设置为对象的实例。” 我相信这是因为我试图保存pictureBox.Image,而没有实际设置图像。如何保存图片盒中的图像 // Left Arm Rear bmp = new Bitmap(4, 12); g3 = Graphics.FromImage(bmp); g3.DrawImageUnscaled(pictureBoxSkin.Ima

我已经写了这段代码,但它抛出了一个一般性错误

“对象引用未设置为对象的实例。”

我相信这是因为我试图保存
pictureBox.Image
,而没有实际设置图像。如何保存
图片盒中的图像

            // Left Arm Rear
            bmp = new Bitmap(4, 12);
            g3 = Graphics.FromImage(bmp);
            g3.DrawImageUnscaled(pictureBoxSkin.Image, -52, -20, bmp.Width, bmp.Height);
            g2 = pictureBoxLabel.CreateGraphics();
            bmp.RotateFlip(RotateFlipType.RotateNoneFlipX);
            g2.DrawImageUnscaled(bmp, 28, 20, bmp.Width, bmp.Height);

            // Back
            bmp = new Bitmap(8, 12);
            g3 = Graphics.FromImage(bmp);
            g3.DrawImageUnscaled(pictureBoxSkin.Image, -32, -20, bmp.Width, bmp.Height);
            g2 = pictureBoxLabel.CreateGraphics();
            bmp.RotateFlip(RotateFlipType.RotateNoneFlipX);
            g2.DrawImageUnscaled(bmp, 32, 20, bmp.Width, bmp.Height);

            pictureBoxLabel.Image.Save(openFileDialog1.InitialDirectory + Path.GetFileNameWithoutExtension(openFileDialog1.FileName) + "_label.Png");

如果最后一行出现
nullreferenceexception
throwns,则有一些可能性

pictureBoxLabel.Image.Save(openFileDialog1.InitialDirectory + Path.GetFileNameWithoutExtension(openFileDialog1.FileName) + "_label.Png");
  • pictureBoxLabel
    可以是
    null
  • openFileDialog1
    可以是
    null
在调试时检查这些对象

但如果
pictureBoxLabel
为空,则此行上也可能会抛出
NullReferenceException

g2 = pictureBoxLabel.CreateGraphics();

所以,我的钱花在
openFileDialog1
null

上,你真的要用调试器插入这段代码并找到引发异常的行。您还使用了两种不同的控件
PictureBoxkin.Image
pictureBoxLabel.Image
,这是故意的吗?这两种图像都是故意的。引发错误的行是底部的保存行。正如我所说,我认为这是因为我试图在pictureBoxLabel中保存图像,而没有为其指定图像。它有一个图像,但它是使用creategraphics添加的。保存创建的图形的正确行是什么?如果您已经知道一行中有太多错误,那么一行中的内容太多。在上面的行中组合文件名。仅使用字符串作为参数调用
Save
,以更接近错误。感谢您的回复,您能检查下面的响应吗?openFileDialog很好。如果我将pictureBox对象替换为位图对象,它会将文件保存到正确的位置,因此文件路径良好。我认为问题在于pictureBoxLabel.Image是空的。当代码运行时,它将分离PictureBoxkin.Image,重新排列它并将其绘制到pictureBoxLabel,因此在WinForm中,我在pictureBoxLabel中看到一个图像。但实际上我并没有设置pictureBoxLabel.Image属性。如何保存我在WinForm上的框中看到的图像?@luigivampa Check image property from