我在pictruebox画了坐标系和图像,并加入了一些label 标记坐标系,怎么将这些内容全部导出到磁盘?
求教各位高手!

解决方案 »

  1.   

    string filepath = "\\" + 照片名 + ".jpg";
    Bitmap bmp = picturebox1.Image;
    bmp.Save(path, ImageFormat.Jpg);以上是保存picturebox1图片再指定的文件路径下至于坐标系保存,没看懂什么意思呀
      

  2.   

    [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]   
    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 就可以了。
      

  3.   

    请问
    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          //光栅的操作值   
    );
    是什么意思?
      

  4.   

    坐标系和图像参数啊。
    int nXDest,        //目标对象的左上角的X坐标
    int nYDest,        //目标对象的左上角的X坐标
      

  5.   

    运行后提示“未能从程序集“WindowsFormsApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型“WindowsFormsApplication1.Form2”,因为方法“BitBlt”没有实现(没有 RVA)。”是什么原因啊?
      

  6.   

    http://hi.baidu.com/__%B6%C0%B9%C2%B2%D0%D4%C6__/blog/item/03e890fb2b4ae7106c22eb5a.html[DllImport(“gdi32.dll“)]
            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调用