私は先に進んで、私の仮定に基づいて質問に答えました、
新しいWinforms
アプリケーションを作成しました
Bitmap
パネルと名前付きのボタンを追加buffer
し、Form1
コンストラクターでパネルのサイズに初期化しました。パネルに直接描画する代わりに、に描画してから、Bitmap
パネルの背景画像を設定しますbuffer
。これにより、グラフィックに永続性が追加されます。あなたが本当にファイルに書きたいのなら、私はあなたにそれを示すことができます。聞いてください。
ファイルに書き込むには、次の名前空間参照が必要になります。
using System.IO;
ImageToDisc
求めていた機能を追加しました。
これがコードです:
Bitmap buffer;
public Form1()
{
InitializeComponent();
panel1.BorderStyle = BorderStyle.FixedSingle;
buffer = new Bitmap(panel1.Width,panel1.Height);
}
private void button1_Click(object sender, EventArgs e)
{
using (Graphics g = Graphics.FromImage(buffer))
{
g.DrawRectangle(Pens.Red, 100, 100,100,100);
}
panel1.BackgroundImage = buffer;
//writes the buffer Bitmap to a binary file, only neccessary if you want to save to disc
ImageToDisc();
//just to prove that it did write it to file and can be loaded I set the mainforms background image to the file
this.BackgroundImage=FileToImage();
}
//Converts the image to a byte[] and writes it to disc
public void ImageToDisc()
{
ImageConverter converter = new ImageConverter();
File.WriteAllBytes(@"c:\test.dat", (byte[])converter.ConvertTo(buffer, typeof(byte[])));
}
//Converts the image from disc to an image
public Bitmap FileToImage()
{
ImageConverter converter = new ImageConverter();
return (Bitmap)converter.ConvertFrom(File.ReadAllBytes(@"c:\test.dat"));
}