2011-11-29 28 views
6

Actualmente estoy intentando guardar una imagen de mapa de bits, pero el fondo está cambiando a negro.El fondo se vuelve negro al guardar mapa de bits - C#

Puedo "guardar como" la imagen perfectamente bien. También puedo "Guardar" la imagen. Lo cual fue mucho más difícil porque tuve que sobreescribir la imagen existente.

Sin embargo, cuando "guardo" mi imagen, el fondo se está poniendo negro. Y no tengo idea de qué lo está causando.

Aquí está mi código:

Bitmap tempImage = new Bitmap(DrawArea); 

DrawArea.Dispose(); 

if (extension == ".jpeg") 
    tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg); 
else 
    tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp); 

DrawArea = new Bitmap(tempImage); 
pictureBox1.Image = DrawArea; 

tempImage.Dispose(); 
+0

Ver http://stackoverflow.com/questions/4067448/converting-image-to-bitmap-turns-background-black o http://stackoverflow.com/questions/6513633/c-sharp-converting-transparent-png-to-jpg-black-background –

Respuesta

21

Crear un mapa de bits en blanco. Cree un objeto de gráficos para escribir con ese mapa de bits en blanco. Borre el mapa de bits y cambie su color a blanco. Luego dibuja la imagen y luego guarda el mapa de bits.

  Bitmap blank = new Bitmap(DrawArea.Width, DrawArea.Height); 
      Graphics g = Graphics.FromImage(blank); 
      g.Clear(Color.White); 
      g.DrawImage(DrawArea, 0, 0, DrawArea.Width, DrawArea.Height); 

      Bitmap tempImage = new Bitmap(blank); 
      blank.Dispose(); 
      DrawArea.Dispose(); 

      if (extension == ".jpeg") 
       tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg); 
      else 
       tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp); 

      DrawArea = new Bitmap(tempImage); 
      pictureBox1.Image = DrawArea; 

      tempImage.Dispose(); 
+2

Gracias hombre salvó mi día – Vivekh

+3

Es bueno ver que mi vieja pregunta podría ayudar a alguien. – Johnrad

+0

se usa su solución (hasta votado), pero ¿cómo sucede g.save() aquí? Creé un nuevo mapa de bits, nuevos gráficos (mapa de bits), agregué todo el contenido y luego bitmap.save, ¿aquí cómo el contenido de los gráficos se envía al mapa de bits? – Vijayaraghavan

-1

intenta guardar la imagen en formato PNG en lugar de JPEG ..

+0

tiene razón técnicamente, entonces +1 para usted – smoothumut

Cuestiones relacionadas