【问题标题】:How can i keep the points im drawing on the image in the picturebox1 when moving the trackBar1?移动trackBar1时,如何保持在picturebox1中的图像上绘制的点?
【发布时间】:2012-04-23 08:18:36
【问题描述】:

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

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

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

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

如果我将 trackBar1 移动到另一个图像,那么这些点将被删除,如果我向后移动,则会看到我在另一个图像上绘制的点。等等。我曾经在哪里画过东西来保存它,所以如果我搬回去就看看我画了什么。

现在在我的程序中,我可以将每个图像保存到已绘制或未绘制的硬盘上。所以我也可以从硬盘加载我保存的这些图像。 但我想在不从硬盘加载图像的情况下实时完成。 也许以某种方式将其保存到内存中?

【问题讨论】:

    标签: c#


    【解决方案1】:

    您可以在覆盖下面图像的透明图像中绘制点,以便在滚动背景图像时保留覆盖。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        • 适当时将图片加载到图片框中
        • 我在图片上画了一些东西,将另一张图片保存在磁盘上,给它一个类似的名称:original-OVR.png。我的意思是,在名称后面加上 -OVR。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-03
          • 2018-12-30
          • 2010-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多