我在pictruebox画了坐标系和图像,并加入了一些label 标记坐标系,怎么将这些内容全部导出到磁盘?
求教各位高手!
求教各位高手!
解决方案 »
- c#底下用ADOX创建的空表如何增加数据
- C#的SplitContainer控件怎么样做可以又固定一边大小,又能实现拖动
- 我想把我的电脑做为我网站的服务器,如何把域名解析到我的电脑上
- c#中利用Process调用外部ftp.exe
- dllimport 构造函数
- db2的连接字的解释:Package Collection=CMS;Initial Catalog=CMS;Default Schema=Schema;
- 求高手帮我看这段代码
- 新手上路,向大家请教个问题
- C#安装程序在2000下运行,一定需要SP3吗?
- 怎么例程运行都出错了,谁来教教我?
- 将从表外键与主表主键值相同的某列的值赋值给主表的新列
- 求助!!dataGridView直接更新到Dataset的方法
Bitmap bmp = picturebox1.Image;
bmp.Save(path, ImageFormat.Jpg);以上是保存picturebox1图片再指定的文件路径下至于坐标系保存,没看懂什么意思呀
private static extern bool BitBlt(
IntPtr hdcDest, //目标设备的句柄
int nXDest, //目标对象的左上角的X坐标
int nYDest, //目标对象的左上角的X坐标
int nWidth, //目标对象的矩形的宽度
int nHeight, //目标对象的矩形的长度
IntPtr hdcSrc, //源设备的句柄
int nXSrc, //源对象的左上角的X坐标
int nYSrc, //源对象的左上角的X坐标
int dwRop //光栅的操作值
);[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern IntPtr CreateDC(
string lpszDriver, //驱动名称
string lpszDevice, //设备名称
string lpszOutput, //无用,可以设定位"NULL"
IntPtr lpInitData //任意的打印机数据
); /// <summary>
/// 把当前Form保存到图片中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
int width = DisplayRectangle.Width;
int height = DisplayRectangle.Height;
string imagePath = @"c:\{0}.jpg";
imagePath = string.Format(imagePath, this.Text); Graphics g1 = this.CreateGraphics();
Bitmap image = new Bitmap(width, height, g1);
//根据屏幕大小创建一个与之相同大小的Bitmap对象
Graphics g2 = Graphics.FromImage(image); //获得屏幕的句柄
IntPtr dc3 = g1.GetHdc();
//获得位图的句柄
IntPtr dc2 = g2.GetHdc();
//把当前Form捕获到位图对象中
BitBlt(dc2, 0, 0, width, height, dc3, 0, 0, 13369376); //释放屏幕句柄
g1.ReleaseHdc(dc3);
//释放位图句柄
g2.ReleaseHdc(dc2);
image.Save(imagePath, ImageFormat.Jpeg);
MessageBox.Show(string.Format(@"保存图片成功!{0}", imagePath));
}/// <summary>
/// 把当前屏幕保存到图片中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
this.Visible = false;
IntPtr dc1 = CreateDC("DISPLAY", null, null, (IntPtr)null);
//创建显示器的DC
Graphics g1 = Graphics.FromHdc(dc1);
//由一个指定设备的句柄创建一个新的Graphics对象
Bitmap MyImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height - 25, g1);
//根据屏幕大小创建一个与之相同大小的Bitmap对象
Graphics g2 = Graphics.FromImage(MyImage);
//获得屏幕的句柄
IntPtr dc3 = g1.GetHdc();
//获得位图的句柄
IntPtr dc2 = g2.GetHdc();
//把当前屏幕捕获到位图对象中
BitBlt(dc2, 0, 0, Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height - 25, dc3, 0, 0, 13369376);
//把当前屏幕拷贝到位图中
g1.ReleaseHdc(dc3);
//释放屏幕句柄
g2.ReleaseHdc(dc2);
//释放位图句柄
MyImage.Save(@"c:\MyJpeg.jpg", ImageFormat.Jpeg);
MessageBox.Show(@"已经把当前屏幕保存到C:\MyJpeg.jpg文件中!");
this.Visible = true;
}Graphics g1 = this.CreateGraphics();
换成你 panel 的 Graphics 就可以了。
private static extern bool BitBlt(
IntPtr hdcDest, //目标设备的句柄
int nXDest, //目标对象的左上角的X坐标
int nYDest, //目标对象的左上角的X坐标
int nWidth, //目标对象的矩形的宽度
int nHeight, //目标对象的矩形的长度
IntPtr hdcSrc, //源设备的句柄
int nXSrc, //源对象的左上角的X坐标
int nYSrc, //源对象的左上角的X坐标
int dwRop //光栅的操作值
);
是什么意思?
int nXDest, //目标对象的左上角的X坐标
int nYDest, //目标对象的左上角的X坐标
private static extern bool BitBlt(
IntPtr hdcDest, //目标设备的句柄
int nXDest, // 目标对象的左上角的X坐标
int nYDest, // 目标对象的左上角的X坐标
int nWidth, // 目标对象的矩形的宽度
int nHeight, // 目标对象的矩形的长度
IntPtr hdcSrc, // 源设备的句柄
int nXSrc, // 源对象的左上角的X坐标
int nYSrc, // 源对象的左上角的X坐标
int dwRop // 光栅的操作值
);
BitBlt是API调用