В верхней части Form1 я сделал: Bitmap bmp;
В случае краски я рисую на pictureBox
, а также в файл bmp
:Как сохранить текущий кадр/изображение в pictureBox1 в растровый файл?
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 файл с рисунками внутри только. Если im делает pictureBox1.Image.Save, он сохранит на жесткий диск файл с изображением в pictureBox только без рисунков.
Как я могу объединить его, чтобы я создал одну строку сохранения/команду, и она создаст один файл bmp на жестком диске с изображением pictureBox и рисунками вместе?
Вы уверены, что у вас есть права на запись в 'D: \'? (Может быть, это CD-привод?) – Ryan
minitech D: мой второй жесткий диск. – user1477444