現在まだ初期段階にあるWPFを使用してerpアプリケーションを開発しています。
特定の子ウィンドウ インスタンスの C# コードを使用して、実行時に .png または .jpg アイコンの色をグレースケールに変更する方法を知る必要があります。
たとえば、編集操作を処理するウィンドウでは、画像の保存ボタンを無効にし、グレースケールにする必要があります。
ありがとうございます。
現在まだ初期段階にあるWPFを使用してerpアプリケーションを開発しています。
特定の子ウィンドウ インスタンスの C# コードを使用して、実行時に .png または .jpg アイコンの色をグレースケールに変更する方法を知る必要があります。
たとえば、編集操作を処理するウィンドウでは、画像の保存ボタンを無効にし、グレースケールにする必要があります。
ありがとうございます。
この拡張メソッドを使用して、画像をグレースケールに変換します。
public static Image MakeGrayscale(this Image original)
{
Image newBitmap = new Bitmap(original.Width, original.Height);
Graphics g = Graphics.FromImage(newBitmap);
ColorMatrix colorMatrix = new ColorMatrix(
new float[][]
{
new float[] {0.299f, 0.299f, 0.299f, 0, 0},
new float[] {0.587f, 0.587f, 0.587f, 0, 0},
new float[] {.114f, .114f, .114f, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
});
ImageAttributes attributes = new ImageAttributes();
attributes.SetColorMatrix(colorMatrix);
g.DrawImage(
original,
new Rectangle(0, 0, original.Width, original.Height),
0, 0, original.Width, original.Height,
GraphicsUnit.Pixel, attributes);
g.Dispose();
return newBitmap;
}