c# 保存picturebox图片
我在主程序里Graphicsg=pictureBox1.CreateGraphics();来定义g,然后通过g画图,画了一个数学函数的图像,现在想把picturebox上...
我在主程序里Graphics g = pictureBox1.CreateGraphics();来定义g,然后通过g画图,画了一个数学函数的图像,现在想把picturebox上面的图像保存下来,求指导~~
说的细致的我一定会再加分
!!!
这样子早试过了额。pictureBox.Image为指定到实例的引用。
是绘在picturebox上面的。 展开
说的细致的我一定会再加分
!!!
这样子早试过了额。pictureBox.Image为指定到实例的引用。
是绘在picturebox上面的。 展开
4个回答
展开全部
你要想保存pictureBox1上的图片必须在pictureBox1的paint事件里绘制,然后再调用pictureBox1的DrawToBitmap方法保存在图片里,最后在把图片保存到硬盘上,不过这样太麻烦不如直接绘制在图片上,代码如下两种方法都有
//在pictureBox1的Paint事件里绘制
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawString("Hello World", this.Font, Brushes.Black, new PointF(10, 10));
}
private void button1_Click(object sender, EventArgs e)
{
Bitmap bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.DrawToBitmap(bit, pictureBox1.ClientRectangle);
bit.Save("C:\\Picture1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
bit.Dispose();
}
//直接绘制在Bitmap上并保存
private void button2_Click(object sender, EventArgs e)
{
Bitmap bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(bit);
g.Clear(Color.White);
g.DrawString("Hello World", this.Font, Brushes.Black, new PointF(10, 10));
g.Dispose();
bit.Save("C:\\Picture2.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
bit.Dispose();
}
//在pictureBox1的Paint事件里绘制
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawString("Hello World", this.Font, Brushes.Black, new PointF(10, 10));
}
private void button1_Click(object sender, EventArgs e)
{
Bitmap bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.DrawToBitmap(bit, pictureBox1.ClientRectangle);
bit.Save("C:\\Picture1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
bit.Dispose();
}
//直接绘制在Bitmap上并保存
private void button2_Click(object sender, EventArgs e)
{
Bitmap bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(bit);
g.Clear(Color.White);
g.DrawString("Hello World", this.Font, Brushes.Black, new PointF(10, 10));
g.Dispose();
bit.Save("C:\\Picture2.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
bit.Dispose();
}
展开全部
很简单,定义一个全局变量: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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将你所绘制的东西线绘制到一个Bitmap上,然后使用Graphics.FromImage把这个Bitmap显示出来,最后调用Bitmap的Save方法,把图像保存为本地文件。
这样,你保存的文件和你绘制的东西就是一致的。
这样,你保存的文件和你绘制的东西就是一致的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
推荐楼上的答案
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询