2012-04-12 4 views
1

을 사용하여 런타임에 이미지 버튼 아이콘 색상을 회색 음영으로 변경합니다. 현재 초기 단계 인 WPF를 사용하여 erp 응용 프로그램을 개발 중입니다.C# 코드

특정 childwindow 인스턴스에 대한 C# 코드를 사용하여 .png 또는 .jpg 아이콘의 색상을 런타임에 회색 음영으로 변경하는 방법을 알아야합니다.

예를 들어, 창 조작 편집 작업은 이미지 저장 버튼을 비활성화하고 그레이 스케일로 전환해야합니다.

도움 대단히 감사합니다. 감사합니다.

답변

5

나는 그레이 스케일로 이미지를 변환하려면이 확장 방법을 사용하십시오

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; 
}