I want to convert a transparent png image to greyscale without losing its transparency.
The problem is the algorithm that I am using in is converting the transparent part into Black, which some picture with black character wouldn't be shown. To give you an idea.
Heres the original picture :
Look what happens when I pass it through the algorithm.
The algorithm :
public static void ToWhiteBlack(Bitmap original)
{
try
{
for (var i = 0; i < original.Width; i++)
{
for (var j = 0; j < original.Height; j++)
{
var originalColor = original.GetPixel(i, j);
var grayScale = (int) ((originalColor.R*0.3) + (originalColor.G*0.59) + (originalColor.B*0.11));
var corEmEscalaDeCinza = Color.FromArgb(grayScale, grayScale, grayScale);
original.SetPixel(i, j, corEmEscalaDeCinza);
}
}
}
catch
{
}
}