各位高手,我在panel下画了个图片(通过另一个函数画的),怎么将这个区域内的图片保存下来呢?我保存时候总是个黑框。想着应该是bitmap^ bitimg 里是空的,没有图片搞的。怎么解决呢?
或者说:怎么保存form特定panel区域的图片呢?不要求分辨率什么的。
或者说:怎么保存form特定panel区域的图片呢?不要求分辨率什么的。
解决方案 »
- C#创建的窗口程序,窗口可以正常的关闭,但是窗口关闭之后进程并没有正常关闭,造成这种现象的有那些可能性
- 求大神帮忙,小弟在这里万分感谢
- 一个web版的xml文件,怎么将xml文件的内容转存到oracle数据库中,语言是C#,在线等,跪求!!!
- 子窗口如何才能不盖住父窗口?
- 在button1_Click(object sender, EventArgs e)事件中,如何判断鼠标按下的是左键还是右键
- dataset 大批量一次性更新到数据库
- 如何实现这个递归算法?
- winform treeview问题,关于选取,请高手指教
- C#已有远程服务器的IP地址及权限,如何监控远程服务器?
- 怎么调试.exe 参数1
- 关于Server.MapPath怎样取绝对路径的问题?
- DataFormats.FileDrop文件格式是什么文件!?
Image myImage =new Bitmap(this.panel1.Width, this.panel1.Height, g1);
Graphics g2 =Graphics.FromImage(myImage);
IntPtr dc1 =g1.GetHdc();
IntPtr dc2=g2.GetHdc();
BitBlt(dc2,0,0,this.panel1.Width,this.panel1.Height,dc1,0,0,13369376);
g1.ReleaseHdc(dc1);
g2.ReleaseHdc(dc2);
myImage.Save(@ "C:\a.bmp ", ImageFormat.Bmp);
{
Panel panel1 = new Panel();
public Form2()
{
panel1.Dock = DockStyle.Fill;
panel1.Paint += new PaintEventHandler(panel1_Paint);
panel1.Click += new EventHandler(panel1_Click);
this.Controls.Add(panel1);
} void panel1_Click(object sender, EventArgs e)
{
//单击Panel1则保存
buffer.Save("buffer.bmp");
} Bitmap buffer = null;
void panel1_Paint(object sender, PaintEventArgs e)
{
if (buffer == null) buffer = new Bitmap(panel1.Width, panel1.Height);
if (buffer.Width != panel1.Width || buffer.Height != panel1.Height) buffer = new Bitmap(panel1.Width, panel1.Height);
using (Graphics g = Graphics.FromImage(buffer))
{
g.DrawLine(Pens.Blue, 0, 0, 175, 233);
}
e.Graphics.DrawImage(buffer, 0, 0);
}
}