【发布时间】:2013-01-27 09:21:14
【问题描述】:
我已经编写了这段代码,但它会引发一般错误
“对象引用未设置为对象的实例。”
我相信这是因为我试图保存 pictureBox.Image 而没有实际设置图像。如何保存pictureBox 中的图像?
// 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");
【问题讨论】:
-
您确实尝试使用调试器单步执行此代码并找到引发异常的行。您还使用了两个不同的控件
pictureBoxSkin.Image和pictureBoxLabel.Image,这是故意的吗? -
两张图片是故意的。引发错误的行是底部的保存行。就像我说的那样,我认为这是因为我试图将图像保存在 pictureBoxLabel 中而没有为其分配图像。它有一个图像,但它是使用 creategraphics 添加的。保存创建的图形的正确行是什么?
-
如果您已经知道它会引发错误,那么一行内容太多了。在上面的行中组合文件名。仅使用字符串作为参数调用
Save以更接近错误。 -
感谢您的回复,您可以查看下面的回复吗?
标签: c# save picturebox