2009-07-29 20 views
2

私はそれに描画するImage値をコピーしようとしていて、2度目の描画で最後の画像を無視して、保存されたImage値の上からやり直しています。私:System.Drawing.Imageの値をコピーする方法は?

Image with 4 rectangle (ImageA) 
-> draw a circle 
return to ImageA 
-> draw a rectangle 
now there are 5 rectangles 

私はそれが最適な描画方法であるかどうかわかりません。

+0

あなたの意図についてもう少し詳しくお聞かせください。あなたは、画像編集のための簡単なアンドゥ/リドゥフレームワークを作成しようとしていますか? – jrista

+0

ありがとうございます。私は既に描画されたビットマップ上に新しい図形を描画しようとしています。だから私は私のものを再描画したくない。一番上に追加するだけで、新しい形状は1つだけです。 –

答えて

0

新しいビットマップを作成し、その上にGraphicsオブジェクトを配置し、一時ビットマップ上にImageAを描画し、サークル上に描画することができます。終了したら、一時ビットマップを破棄してImageAに描画します。

+0

Graphics.FromImageを意味していますか? –

4

私はBlindyに同意します。新しいImageオブジェクトを作成し、最初のImageを保持しながらその上に描画します。

Bitmap myBitmap = new Bitmap("C:\\<path"); 
Image myImage = (Image)myBitmap.Clone(); 

これは、あなたがまだあなたがロードした元画像を保存しながら、あなたの描画を行うための新しいImageオブジェクトを作成します。

+0

ありがとうございますが、メモリ内のSystem.Drawing.ImageのようにImageストアしかありません。それを使って新しいImage値に渡すことはできますか? –

+0

申し訳ありません私はビットマップとしてイメージを読み込んでいると思っています。 もちろん、あなたがしていることをやることができます。 Image imageAで始まり、その画像を新しいオブジェクトにコピーしたいとします。コードは上記と同じですが、キャストなしです。 イメージmyImage = imageA.Clone(); –

関連する問題