移动trackBar1时,如何保持图片在picturebox1中的图像?

时间:2011-12-31 12:21:25

标签: c#

我正在使用trackBar1在硬盘上的图像之间移动,并在pictureBox1中显示每个图像。

现在我也可以在pictureBox1中的每个图像上绘制红点。

我想要做的是,如果我在pictureBox1中显示的当前图像上绘制了一些点,那么我绘制的内容将被保存/保留在pictureBox1中当前显示的图像上

我的意思是,如果我画了一些东西,那么我将trackBar1向前移动一个刻度线移动到下一个图像,这样就不会在下一个图像上显示这些点,但如果我向后移动trackBar1一次我我会在另一张图片上看到我之前画过的东西。我不想将其作为文件保存到硬盘中,而是为了保持我在pictureBox1当前位置trackBar1上绘制的内容。

如果我将trackBar1移动到另一个图像,那么点将被删除,如果我向后移动,看​​到我在另一个图像上绘制的点。等等。在哪里我画了一些东西以保持它如此,如果我向后移动,看​​看我画了什么。

现在在我的程序中,我可以将每个图像保存到已绘制或未绘制的硬盘上。所以我也可以从硬盘加载这个我保存的图像。 但我想实时做而不加载硬盘上的图像。 也许以某种方式将它保存到记忆中?

3 个答案:

答案 0 :(得分:0)

您可以在透明图像中绘制点,使其覆盖下方的图像,以便在滚动背景图像时保留叠加层。

答案 1 :(得分:0)

这是因为您在图片框上绘制的内容未存储在图片中。它仅显示在屏幕上。您必须在图片框的Paint事件处理程序中执行绘图。每当需要重绘图片时,Paint事件将自动引发。请参阅msdn

上的示例

答案 2 :(得分:0)

我完全反对PictureBox-es,但如果你坚持:

  • 在适当的时候将图片加载到图片框中
  • 我在图片上画了一些东西,在DISK上保存另一张图片,给它一个名字就像:original-OVR.png。我的意思是,用-OVR后缀名称。

还有更多方法可以做到这一点,但我想你可以继续使用这种方法。不要担心在硬盘上有双重图像......