2011-11-29 46 views
6

Tôi hiện đang cố gắng lưu hình ảnh bitmap, nhưng nền đang chuyển sang màu đen.Bối cảnh chuyển sang màu đen khi lưu bitmap - C#

Tôi có thể "Lưu dưới dạng" hình ảnh hoàn toàn tốt. Tôi cũng có thể "Lưu" hình ảnh. Điều đó khó khăn hơn nhiều vì tôi phải ghi đè hình ảnh hiện tại.

Tuy nhiên, khi tôi "lưu" hình ảnh của tôi, nền chuyển sang màu đen. Và tôi không biết điều gì đang gây ra nó.

Đây là mã của tôi:

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

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

Trả lời

21

Tạo một bitmap trống. Tạo một đối tượng đồ họa để viết với bitmap trống đó. Xóa bitmap và thay đổi màu của nó thành màu trắng. Sau đó vẽ hình ảnh rồi lưu bitmap.

  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

Cảm ơn người đàn ông đã cứu ngày của tôi – Vivekh

+3

Rất vui khi thấy câu hỏi cũ của tôi có thể giúp ai đó. – Johnrad

+0

giải pháp của bạn được sử dụng (tăng bình chọn), nhưng g.save() xảy ra ở đây như thế nào? Tôi tạo ra một bitmap mới, đồ họa mới (bitmap), thêm tất cả nội dung sau đó bitmap.save, ở đây làm thế nào nội dung đồ họa được đẩy vào bitmap? – Vijayaraghavan

-1

Cố gắng để lưu hình ảnh trong định dạng PNG hơn JPEG ..

+0

bạn đúng về mặt kỹ thuật, vì vậy +1 cho bạn – smoothumut

Các vấn đề liên quan