pictureBox.Image.Save的问题
做了个画板的程序,主要是利用pictureBox实现,当我要保存pictureBox中的图象时,使用pic1.Image.Save("c:\\易做图.jpg",System.Drawing.Imaging.ImageFormat.Jpeg),
结果提示“未将对象引用设置到对象的实例。”,
看了一下pic1.Image发现其值为null!可pic1里有东西。
在网上查了一下,在pic1的paint事件里加入:
bitmp = new Bitmap(pic1.Width, pic1.Height, pic1.CreateGraphics());
保存时使用bitmp.Save(...)发现能保存了,但保存的东东是个黑块,什么都没有。。。
请教各位,如何能正确的保存pictureBox里的内容啊。 --------------------编程问答-------------------- 未将你画的图片赋值给PictureBox的Image --------------------编程问答-------------------- Pic显示的是内存的图像,如果没有就说内存没有,Save本身不会把Pic控件的显示保存的 --------------------编程问答-------------------- 可能你的绘图操作是在picturebox的Graphic上完成的,改为由PicatureBox.Image的绘图层,这样再保存就应该没有问题 --------------------编程问答-------------------- 再来多点意见参考~! --------------------编程问答-------------------- 定义一个数据结构。在Paint中将Picture的内容存入结构中。保存时保存数据结构中的流即可。 --------------------编程问答-------------------- 顶了 --------------------编程问答-------------------- 学习,顶 --------------------编程问答-------------------- 我也出现这个问题 无法解决!现在在做毕业设计,搞不出来好郁闷啊
--------------------编程问答-------------------- 总之,用C#操作图片,必须谨慎,否则很容易发生异常的 --------------------编程问答-------------------- 如果通过属性的Image给picturebox加载图形,那么save是么问题的,如果是在OnPaint中绘制,可以用如下方法
Bitmap bmp = new Bitmap(100, 100);
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = Graphics.FromImage(bmp);
g.FillRectangle(Brushes.Red, 0, 0, 100, 100);
e.Graphics.DrawImage(bmp, new Point(0, 0));
}
保存
bmp.Save("e:\\1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
补充:.NET技术 , C#