2014-02-05 18 views
0

我有一个名为“画布”的面板。它是透明的。所以背景是来自表格图像,它是深蓝色的。这显示在面板或画布上。如何将我的Graphics.Drawline绘图在面板上转换为保存的图像?

当我将画布保存为图像时,它将保存背景,但不保存我上面绘制的背景,我的画线笔是黄色的。我可以在面板上看到它。但是当我保存它时...图像中没有黄线。

我错过了什么?我的黄线在哪里?

我正在运行此计时器滴答...以获取更新视图。 这跟踪CNC型机器的位置。给出该机器与零点相关的位置。

我的最终目标,是拥有一个“视口”,即缩放,从而自动地得到它 成图像,便于调整大小,并显示在PictureBox,这将 处理拉伸的图像和中心呢?

我已经阅读了一些复杂的解决方案,但我追求的是简单的解决方案。 任何帮助,将不胜感激。此致


private void VMoveNow()//Draw on panel called "canvas". 
{ 
    double a = GV.MYa * -1; //Change Direction of Y Drawing. 
    xc = Convert.ToInt32(GV.MXa) + (canvas.Width/2); 
    yc = Convert.ToInt32(a) + (canvas.Height/2); 
    g = canvas.CreateGraphics(); 
    g.DrawLine(p, x, y, xc, yc); 
    x = xc; 
    y = yc; 
    g.Dispose(); 
} 
private void SaveBMP() 
{ 
    try 
    { 
     Bitmap mybmp = new Bitmap(canvas.Width, canvas.Height); 
     canvas.DrawToBitmap(mybmp, canvas.Bounds); 
     mybmp.Save("C:\\myimage.bmp"); 
    } 
    catch 
    { 
     return; 
    } 

} 
+0

不要使用CreateGraphics(),总是使用Paint事件。请注意,简单地最小化和恢复窗口也会使您失去像素。 –

+0

感谢Hans,我正在使用一个锁定表格和固定面板,锁定到位,关闭所有最小和最大值。所以表单和面板永远不会移动或调整大小。因此,我对CreateGraphics没有问题。以及通过提前处理我的var ...我的大小,缩放或缩放,正在按需工作。谢谢。 – jeffserv

回答

0

感谢您寻找。

我回答了我自己的问题,经过多次尝试...我已经想通了,我可以缩放我用于绘制这些图纸的var ...并且Drawline的尺寸将会因此而缩放。

所以我现在有一个面板绘图的缩放,没有图片或图片框需要。是否我希望。

将笔宽设置为-1负责调整大小。

相关问题