c# picturebox中的图片怎么保存

画图片的代码:stringthisimg=((ListBox)sender).SelectedItem.ToString();stringname=txtfolderpa... 画图片的代码 :
string thisimg = ((ListBox)sender).SelectedItem.ToString();
string name = txtfolderpath.Text + "\\" + thisimg;
if (File.Exists(name))
{
Bitmap map = new Bitmap(name);
Graphics g = pictureBox1.CreateGraphics();
g.DrawImage(map, 0, 0, pictureBox1.Width, pictureBox1.Height);
map.Dispose();
//Bitmap bt = new Bitmap(pictureBox1.Width, pictureBox1.Height);
//Graphics g = Graphics.FromImage(bt);
//g.FillRectangle(new SolidBrush(Color.Black), 0, 0, pictureBox1.Width, pictureBox1.Height);
}
存图片的代码:
saveFileDialog1.InitialDirectory = "c:";
saveFileDialog1.Filter = "Png图像(*.png)|*.png|所有格式(*.*)|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string folderP = saveFileDialog1.FileName;
Image img = pictureBox1.Image;
img.Save(folderP);
}
PS:因为有删除图片的功能,所以不能是直接绑定图片:
//Bitmap bt = new Bitmap(pictureBox1.Width, pictureBox1.Height);
//Graphics g = Graphics.FromImage(bt);
//g.FillRectangle(new SolidBrush(Color.Black), 0, 0, pictureBox1.Width, pictureBox1.Height);
所以上面新建了一个graphics,然后在画布上画了,但是,发现这样做到保存图片的时候,就会出现pictureBox1.Image是null的问题,刚刚网上搜了一下,知道了graphics的一切操作是针对pictureBox1这个控件外表的修改,而不是Image属性,求解决方法~
展开
 我来答
匿名用户
2013-07-18
展开全部
很简单,定义一个全局变量:public Bitmap pbmap;
然后所有的图都画在这个bitmap上面,保存时只要将pbmap保存就行了
pbmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
if (listBox1.Items.Count <= 0 || listBox1.SelectedItem == null)
{
return;
}
string thisimg = ((ListBox)sender).SelectedItem.ToString();
string name = txtfolderpath.Text + "\\" + thisimg;
if (File.Exists(name))
{
Bitmap map = new Bitmap(name);

Graphics g = Graphics.FromImage(pbmap);
g.DrawImage(map, 0, 0, pictureBox1.Width, pictureBox1.Height);
map.Dispose();
pictureBox1.Image = pbmap;
}

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string folderP = saveFileDialog1.FileName;
Image img = pbmap;
img.Save(folderP);
}
du瓶邪
2015-08-06 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2757万
展开全部
调用pictureBox的DrawToBitmap方法就可以了:
Bitmap bmp = new Bitmap(pictureBox1.BackgroundImage);
bmp.Save("c:\\1.bmp");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哲事姓无
2013-07-15 · TA获得超过1176个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:428万
展开全部
pictureBox1.Image = map 就行了呀。DrawImage 多余了。需要缩放的话,设置pictureBox的缩放模式就好了。

而且从你的代码来看copy 图像文件就好了。也用不着通过picutrebox来中转一下吧。
追问
可以加您QQ问吗?我有删除功能,所以不能占用图片文件,要dispose掉,用pictureBox1.Image = map显示出来是错误,还有水印功能,所以需要picturebox中转一下
我的QQ:939676215
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
方衍晴茶话会
2013-07-17 · TA获得超过157个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:122万
展开全部
直接保存图片 map.Save("fileName");
追问
map DISPOSE掉了,而且不是在同一个函数中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式