2013-05-07 26 views
0

我需要能夠以下面的方式來比較兩個不同的圖像:疊加層 - 控制哪些部分是在與小鼠coursor前景

的圖像顯示在彼此的頂部,從而第一有隻有一個圖像可見。當鼠標懸停在圖像上方時,這定義了垂直線的X位置,該垂直線正在分割圖像,將第一個圖像的一部分顯示在行上,第二個圖像的其餘部分顯示在行的右邊。

這基本上應該用作具有相同內容的兩個圖像的質量比較。

這裏是一個圖片有希望使我的意圖明顯:

enter image description here

回答

0

我能夠通過使用SplitContainer和自定義繪圖來解決此問題。正如Vasanthakumar的回答中所描述的,純粹使用圖片框的答案是不夠的,因爲您將無法在與左圖片相同的起點對齊右側圖片(表格左上角)。

我所做的是以下內容:

  • 圖片框1只顯示其圖像通常
  • 在圖片框2中的圖像被描繪在所述分離器的每一個動作(this.splitContainer1.SplitterMoved += new System.Windows.Forms.SplitterEventHandler(this.splitContainer1_SplitterMoved);與所述圖像的一個自定義的子集是顯示。

這有效地允許生成我需要的覆蓋。

我的實現顯示的T部分他繪製邏輯:

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; 
0

可以使用分配器控制。分離器一邊你把一個圖片控制另一邊把其他圖片控制

+0

感謝您的回答。我試圖用SplitContainer控件來實現這一點。但是,右側框中的圖像的起始位置在右側容器的左上角。所以基本上沒有覆蓋。 – leepfrog 2013-05-08 19:01:10