Aquí está el código:
Bitmap bitmap = new Bitmap(Convert.ToInt32(1024), Convert.ToInt32(1024), System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(bitmap);
// Add drawing commands here
g.Clear(Color.Green);
bitmap.Save(@"C:\Users\johndoe\test.png", ImageFormat.Png);
Si sus gráficos está sobre un formulario, puede utilizar esto:
private void DrawImagePointF(PaintEventArgs e)
{
... Above code goes here ...
e.Graphics.DrawImage(bitmap, 0, 0);
}
Además, para ahorrar en una página web, podría usar esto:
MemoryStream memoryStream = new MemoryStream();
bitmap.Save(memoryStream, ImageFormat.Png);
var pngData = memoryStream.ToArray();
<img src="data:image/png;base64,@(Convert.ToBase64String(pngData))"/>
Los objetos gráficos son una superficie de dibujo GDI +. Deben tener un contexto de dispositivo adjunto para dibujar, es decir, una forma o una imagen.
Para los futuros lectores: a pesar del título de esta pregunta, esta respuesta no muestra cómo guardar una gráfica arbitrarias objeto a una imagen. Es decir, no hay función en Graphics o Bitmap que "Copie (la instancia de Graphics) en un Bitmap". Desde la última oración, probablemente se esté refiriendo a hacer 'Gráficos g = Gráficos.Desde la Imagen (mapa de bits)', y luego renderizar a ** esos ** gráficos (g), en lugar de hacerlo a su objeto gráfico original. Luego puede hacer un mapa de bits. Ahorre para guardar lo que ha renderizado. – ToolmakerSteve