2

バックグラウンド

現在のコンテンツだけでなく、「古い」文字列の画像ファイルなどをctrl+c押すと、クリップボードのオブジェクトをコピーするアプリを作成しています。print screen

その他の背景

私のアプリには3つのリストボックス1つのpicBoxがあります。PicBoxはプレビューウィンドウです。ユーザーが画像をダブルクリック(クリップボードに貼り付ける)すると、プレビューが表示されます(これにより、ユーザーは画像が正しいことを確認できます)。

改善したいこと

プレビューをテストし、picBoxの端でいくつかのアーティファクトを経験しました。

アーティファクト

最初の行:元の画像(以下、画像1/2/3と呼ばれます)。

2行目:画像をクリックした順序。2列目と3列目にいくつかのアーティファクトがあります。

3行目:画像1をクリックしてから画像3をクリックすると、行3の列2に表示される画像が表示されます。row3 col3は同じ画像を示していますが、アーティファクトが強調表示されています。

アーティファクトは最初の画像から残っているように見えます。これは、アーティファクトが最初の画像の「赤い線」と同じ位置にあるためです。

私が使用する方法は次のとおりです。

        Graphics grx = Graphics.FromImage(pictureBox1.Image);
        grx.DrawImage(clipboardListImage[listBoxImg.SelectedIndex], new Rectangle      (new  Point(0,0), pictureBox1.Size));
        pictureBox1.Refresh();
4

1 に答える 1

0

わかりました、私は解決策を得たと思います。私が間違っている場合は、plsは私を修正します。

imageAttributesを使用しており、wrapmodeをTileFlipXYに設定しています。

        ImageAttributes imgattr = new ImageAttributes();
        imgattr.SetWrapMode(System.Drawing.Drawing2D.WrapMode.TileFlipXY);

描画機能で使用します。

grx.DrawImage(clipboardListImage[listBoxImg.SelectedIndex], new Rectangle(new Point(0, 0), pictureBox1.Size),0,0,
            clipboardListImage[listBoxImg.SelectedIndex].Width, clipboardListImage[listBoxImg.SelectedIndex].Height,
            GraphicsUnit.Pixel, imgattr);

あまり便利ではありませんが、機能しているようです;)

于 2012-09-03T14:57:56.570 に答える