Aquí es un pequeño ejemplo que aclara algunas cosas para mí (yo estaba luchando con esto un poco demasiado)
PBOX es un cuadro de imagen en Form1, que sea al menos 50x50
appPath se deriva de System.Reflection pero el uso de cualquier camino te gusta
Hay dos botones, uno para el dibujo, uno para el ahorro, sus eventos de clic están en el código a continuación.
cosas que aprendí:
(1) "pBox.Image =" no hacer nada más que inicializar la imagen PBOX, que no tiene que ser un nombre de archivo como todos los ejemplos que encontré acostumbrado (ahorro problema tenía a ese mismo archivo porque se compartió bloqueado). Además, si su objetivo es ver cosas en toda la superficie del control, probablemente le gustará configurar el tamaño en el momento de inicialización al tamaño que necesita. Usé el tamaño de pBox en este ejemplo, pero normalmente uso el tamaño de mapa de bits (porque normalmente comienzo con un archivo de imagen real).
(2) Siempre tuve problemas para ver mis dibujos aparecer en el control o ver mis cambios guardados en el archivo de salida (o ambos). En mis intentos anteriores, duplicaba los sorteos tanto en el control como en el mapa de bits. Por supuesto, eso no es necesario, pero el mapa de bits editado DEBE volver a cargarse en la imagen de control ... y ESO era la pieza de este rompecabezas que me faltaba.
(A) Crear un mapa de bits de la control.image y dibujar en el mapa de bits
(B) Cargar el mapa de bits en el control.Image (para que pueda ver los cambios causados por el sorteo)
(C) Guarde el control.Image
(2-opción) Usted tiene un mapa de bits global (o pasado) (probablemente de un archivo real)
(a) Dibujar en el mapa de bits
(B) Cargar el mapa de bits en el control.Image (para que pueda ver los cambios)
(C) Guardar el mapa de bits
public Form1()
{
InitializeComponent();
pBox.Image = new Bitmap(pBox.Width, pBox.Height);
}
private void DrawStuff1_Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(pBox.Image);
Graphics g = Graphics.FromImage(bmp);
g.FillRectangle(Brushes.Red, 5, 5, 25, 25); //hard-coded size to reduce clutter
pBox.Image = bmp; //this makes your changes visible
}
private void Save_Click(object sender, EventArgs e)
{
pBox.Image.Save(appPath + "SavedImage.bmp");
}
Hola Puede aclarar/dar un ejemplo? – tguclu