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;
}
}
不要使用CreateGraphics(),总是使用Paint事件。请注意,简单地最小化和恢复窗口也会使您失去像素。 –
感谢Hans,我正在使用一个锁定表格和固定面板,锁定到位,关闭所有最小和最大值。所以表单和面板永远不会移动或调整大小。因此,我对CreateGraphics没有问题。以及通过提前处理我的var ...我的大小,缩放或缩放,正在按需工作。谢谢。 – jeffserv