Form1 の上部で私がやった:Bitmap bmp;
ペイント イベントでpictureBox
、ファイルとbmp
ファイルに描画しています:
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
SolidBrush brush;
Pen p = null;
Point connectionPointStart;
Point connectionPointEnd;
Graphics g = e.Graphics;
bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics bitmapGraphics = Graphics.FromImage(bmp);
//g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
moveCounter++;
label6.Text = moveCounter.ToString();
brush = new SolidBrush(Color.Red);
p = new Pen(brush);
for (int idx = 0; idx < wireObject1._point_X.Count; ++idx)
{
Point dPoint = new Point((int)wireObject1._point_X[idx], (int)wireObject1._point_Y[idx]);
dPoint.X = dPoint.X - 5; // was - 2
dPoint.Y = dPoint.Y - 5; // was - 2
Rectangle rect = new Rectangle(dPoint, new Size(10, 10));
g.FillEllipse(brush, rect);
bitmapGraphics.FillEllipse(brush, rect);
// g.FillEllipse(brush, rect);
}
for (int i = 0; i < wireObject1._connectionstart.Count; i++)
{
int startIndex = wireObject1._connectionstart[i];
int endIndex = wireObject1._connectionend[i];
connectionPointStart = new Point((int)wireObject1._point_X[startIndex], (int)wireObject1._point_Y[startIndex]);
connectionPointEnd = new Point((int)wireObject1._point_X[endIndex], (int)wireObject1._point_Y[endIndex]);
p.Width = 2;
g.DrawLine(p, connectionPointStart, connectionPointEnd);
bitmapGraphics.DrawLine(p, connectionPointStart, connectionPointEnd);
}
}
bmp ファイルのペイント イベントで新しいインスタンスを作成しました。また、bmp ファイル用の新しいグラフィックス変数も作成します。そして、pictureBoxに楕円を描画または塗りつぶすすべての場所で、bmpファイルにも描画します。
今私がした保存機能で:
private void SavePictureBoxToBitmap()
{
//PbToBitmap++;
//String tempFile = @"d:\PictureBoxToBitmap\" + PbToBitmap.ToString("D6") + bmp;
bmp.Save(@"d:\PictureBoxToBitmap\bit.bmp");
}
bmp.Save を実行すると、図面のみが含まれる白い bmp ファイルがハードディスクに保存されます。私がpictureBox1.Image.Saveを実行している場合、図面なしでpictureBox内の画像のみを含むファイルがハードディスクに保存されます。
1 つの保存行/コマンドを作成し、pictureBox イメージと図面を一緒に 1 つの bmp ファイルをハードディスク上に作成するようにするにはどうすればよいですか?