保存图片框图片

Posted

技术标签:

【中文标题】保存图片框图片【英文标题】:Save picture box image 【发布时间】: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.ImagepictureBoxLabel.Image,这是故意的吗? 两张图片是故意的。引发错误的行是底部的保存行。就像我说的那样,我认为这是因为我试图将图像保存在 pictureBoxLabel 中而没有为其分配图像。它有一个图像,但它是使用 creategraphics 添加的。保存创建的图形的正确行是什么? 如果您已经知道它会引发错误,那么一行内容太多了。在上面的行中组合文件名。仅使用字符串作为参数调用Save 以更接近错误。 感谢您的回复,您可以查看下面的回复吗? 【参考方案1】:

如果NullReferanceException 在最后一行抛出,则有几个可能性;

pictureBoxLabel.Image.Save(openFileDialog1.InitialDirectory + Path.GetFileNameWithoutExtension(openFileDialog1.FileName) + "_label.Png");
pictureBoxLabel 可以是 nullopenFileDialog1 可以是 null

在调试时检查这些对象。

但如果pictureBoxLabel 为null,则可能在这一行也抛出NullReferanceException

g2 = pictureBoxLabel.CreateGraphics();

所以,我的钱是 openFileDialog1null

【讨论】:

openFileDialog 很好。如果我将图片框对象换成位图对象,它会将文件保存到正确的位置,因此文件路径很好。我认为问题在于pictureBoxLabel.Image 为空。当代码运行时,它会分析pictureBoxSkin.Image,重新排列它并将其绘制到pictureBoxLabel 上,所以在WinForm 上我在pictureBoxLabel 中看到一个图像。但我实际上并没有设置 pictureBoxLabel.Image 属性。如何保存我在 WinForm 的框中看到的图像? @luigivampa 检查来自msdn.microsoft.com/en-us/library/…的图像属性

以上是关于保存图片框图片的主要内容,如果未能解决你的问题,请参考以下文章

如何仅保存从我的图片框中显示的图像

如何在vb中保存图片框(绘画程序)中的内容

C# 使用保存对话框将图片框另存为 jpeg

将图片框图像保存为 PDF 文件

在图片框中查看保存为字符串的图像

将 14 位灰度图像(保存在 long[] 中)复制到图片框