我需要能够以下列方式比较两个不同的图像:
图像显示在彼此之上,因此首先只能看到一个图像。当用鼠标光标悬停在图像上时,这定义了垂直线的X位置,该垂直线分割图像,显示第一个图像的一部分留在线上,第二个图像的其余部分显示在线上。
这基本上应该用作两个内容相同的图像的质量比较。
这张照片希望能让我的意图明确:
答案 0 :(得分:0)
你可以使用分割器控制。分割器一侧你把一个图片控制另一边放其他图片控件
答案 1 :(得分:0)
我能够通过使用SplitContainer和自定义绘图来解决这个问题。正如Vasanthakumar的评论中所描述的那样纯粹使用图片框是不够的,因为你将无法在与左图像相同的起始点(表格的左上角)对齐正确的图像。
我做的是以下内容:
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;