0

我需要能够通过以下方式比较两个不同的图像:

图像彼此重叠显示,因此首先只有一个图像可见。当将鼠标光标悬停在图像上时,这定义了分割图像的垂直线的 X 位置,显示第一张图像的一部分到该行的左侧,第二张图像的其余部分位于该行的右侧。

这基本上应该用作两个具有相同内容的图像的质量比较。

这是一张希望能说明我意图的图片:

在此处输入图像描述

4

2 回答 2

0

您可以使用拆分器控制。分离器 一侧放置一个图片控件 另一侧放置其他图片控件

于 2013-05-07T14:45:53.143 回答
0

我能够通过使用 SplitContainer 和自定义绘图来解决这个问题。正如 Vasanthakumar 的回答的评论中所述,纯粹使用图片框是不够的,因为您将无法将右图像与左图像(表单的左上角)对齐在同一起点。

我所做的是以下内容:

  • pictureBox 1 正常显示其图像
  • pictureBox 2 中的图像是在分割器的每次移动时绘制的(this.splitContainer1.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.splitContainer1_SplitterMoved);带有要显示的图像的自定义子集。

这有效地允许生成我需要的覆盖。

我的部分实现显示了绘图逻辑:

Bitmap bmp = new Bitmap(gImg2.Width, gImg2.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
    g.DrawImage(gImg2, 0, 0, new Rectangle(e.SplitX, 0, gImg2.Width - e.SplitX,   gImg2.Height), GraphicsUnit.Pixel);
}
pictureBox2.Image = bmp;
于 2013-05-08T20:06:45.957 回答