一般的な方法で、ピクチャボックスを描画します。ピクチャボックスは、最初にビットマップ上に描画され、その内容がピクチャボックスイメージにコピーされた後に描画されます。picturebox1.Image = bmp VS picturebox1.Image =新しいビットマップ(bmp)?
Bitmap bmp;
bmp = new Bitmap(pb.Width, pb.Height);
Graphics g = Graphics.FromImage(bmp);
g.Draw(...);
私はすべての描画スタッフを冠した後、次の使用の間に何か違いがあるのだろうか?
pb.Image = bmp;
又は
pb.Image = new Bitmap(bmp);
第2構文はバグです。無駄なメモリの浪費*と*は、Dispose()を正しく呼び出すことを忘れるための確率を高めます。 Imageに割り当てられた古いビットマップを破棄することを忘れてしまったことももう一つの古典的なバグです。 –
これはバグではなく、実際にはビットマップの新しいクリーンコピーを作成します。彼はオリジナルを処分すべきだと認めていますが、これは悪い方法ではありません。スピードのために私は非常にクローンを提案します。適切にしかし、私は、ピクチャボックスの画像がnullであるかどうかをチェックしたいと思います。私の経験では、メモリ管理を本当に吸います。 – Trey
ああサイドノートは、グラフィックスオブジェクトに使用してください。 – Trey