0
透過性を失うことなく透明なpng画像をグレースケールに変換したいと考えています。PNG画像をグレースケールに変換する方法と透明性を失うことなくC#
問題は、私が使用しているアルゴリズムが透明部分を黒に変換していることです。黒の文字を含む画像は表示されません。アイデアを伝える。
相続人は、元の画像:
は、私は、アルゴリズムを通してそれを渡すときに何が起こるか見て。
アルゴリズム:
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
{
}
}
透明度を決定するアルファ値を無視しています。それを新しい色に渡すだけです。 – juharr
どうすればいいですか? – joab
4つの引数を取るFromArgbオーバーロードを使用します。 –