Entfernen Sie die schwarze Hintergrundfarbe einer Bitmap

Ich muss die schwarze Hintergrundfarbe einer Bitmap in C # VS2013 entfernen.

Es ist einfach so, dass ich einige Punkte auf eine Leinwand zeichne. DasSegeltuc ist schwarz und ich muss nur die Leinwand ändern, um @ zu setransparen In der Zwischenzeit bleiben farbige Punkte unverändert.

Ich habe die Lösung bei:Wie entferne ich die weiße Hintergrundfarbe von der Bitmap

Bitmap capcha = new Bitmap(@"C:/image.png");
capcha.MakeTransparent(Color.Black);

Aber der Hintergrund hat immer noch eine graue Farbe wie ein Nebel, der die Punkte auf dem Bild bedeckt.

Wie entferne ich es?

AKTUALISIERE Ich habe den Code benutzt:

ImageAttribute imageAttribute = new ImageAttribute();
imageAttribute.SetGamma(0.5f, ColorAdjustType.Bitmap);
gr.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height),
            0, 0, img.Width, img.Height,    GraphicsUnit.Pixel, imageAttribute );

Ich habe das Gleiche.

Weitere Aktualisierung des C # -Codes zum Zeichnen eines Bildes:

 System.Drawing.Bitmap canvasImage = new System.Drawing.Bitmap(xSize, ySize, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
 canvasImage.MakeTransparent(Color.Black);
 Graphics g = Graphics.FromImage(canvasImage);
 System.Drawing.Bitmap tempImage = myDrawImageFunction(myPoints);
 g.Clear(Color.Transparent);  // this only give me an empty image without any points on it. But, if I uncomment it, I will have an  image with black background.
 // my understanding about g.DrawImage() is to draw points on tempImage
 //  after clearing the background. But, th,e image still have a foggy covering on the image.
 g.DrawImage(tempImage, new System.Drawing.PointF(x_position, y_position));

Ich möchte einen transparenten Hintergrund für "tempImage" haben, bevor Punkte darauf gezeichnet werden.

Das Beispielbild hat einen Hintergrund, der entfernt werden muss, aber die farbigen Punkte auf dem Bild müssen unverändert bleiben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage