Удалить черный цвет фона растрового изображения
Мне нужно удалить черный цвет фона растрового изображения в C # VS2013.
Я просто рисую несколько точек на холсте.холст черный, и мне просто нужно изменить холст, чтобы бытьпрозрачный между тем, сохраняя красочные точки на нем без каких-либо изменений.
Я получил решение по адресу:Как удалить белый цвет фона из растрового изображения
Bitmap capcha = new Bitmap(@"C:/image.png");
capcha.MakeTransparent(Color.Black);
Но фон по-прежнему имеет серый цвет, как туман, покрывающий точки на изображении.
Как это убрать?
ОБНОВИТЬ Я использовал код:
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 );
Я получил то же самое.
Еще обновление кода C # для рисования изображения:
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));
Я хочу иметь прозрачный фон для "tempImage", прежде чем на нем будут нарисованы какие-либо точки.
Изображение примера имеет задний план, который необходимо удалить, но цветные точки на изображении должны быть сохранены без каких-либо изменений.