0

次の方法で 2 つの異なる画像を比較できるようにする必要があります。

画像は互いの上に表示されるため、最初は 1 つの画像しか表示されません。マウス カーソルを画像の上に置くと、画像を分割する垂直線の X 位置を定義し、最初の画像の一部を線の左側に表示し、2 番目の画像の残りを線の右側に表示します。

これは基本的に、同じ内容の 2 つの画像の品質比較として使用する必要があります。

これが私の意図を明確にすることを願っている写真です:

ここに画像の説明を入力

4

2 に答える 2

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 に答える
0

スプリッター制御を使用できます。スプリッター 片側に 1 つの画像コントロールを置きます 別の側に他の画像コントロールを置きます

于 2013-05-07T14:45:53.143 に答える