0

私は2つの画像を持っています、OriginalImageそしてTempImage

このコードを使用して、画像を次の形式でロードします。

this.DoubleBuffered = true;
Temp= new Bitmap(2, 2);
Original = new Bitmap(2, 2);
Original=Temp;

温度画像を変更します(回転、切り抜きなど)

リセット時に、元の画像を読み込んで基本画像をフォームに読み込みますが、一時画像を読み込みます。

4

1 に答える 1

2

問題はそれBitmapがクラスであり、あなたが言うときOriginal = Temp、あなたはOriginalと同じBitmapインスタンスを参照するように言っているということですTemp

Bitmapインスタンス化したものはOriginal失われ、ガベージコレクションされます。どちらか一方を破棄すると、両方が機能しなくなります。

その最後の行で探しているのはBitmap.Clone()、Tempのコピーを作成し、それをOriginalに保存するためです。

    this.DoubleBuffered = true;
    Temp= new Bitmap(2, 2);
    Original = (Bitmap)Temp.Clone();
于 2012-12-29T07:56:27.757 に答える