■ Bitmap 클래스를 사용해 회색조 비트맵을 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
using System.Drawing; using System.Drawing.Imaging; #region 회색조 비트맵 구하기 - GetGrayscaleBitmap(sourceBitmap) /// <summary> /// 회색조 비트맵 구하기 /// </summary> /// <param name="sourceBitmap">소스 비트맵</param> /// <returns>회색조 비트맵</returns> public Bitmap GetGrayscaleBitmap(Bitmap sourceBitmap) { Bitmap targetBitmap = new Bitmap(sourceBitmap.Width, sourceBitmap.Height); Graphics targetGraphics = Graphics.FromImage(targetBitmap); ColorMatrix colorMatrix = new ColorMatrix ( new float[][] { new float[] { .3f , .3f , .3f , 0, 0 }, new float[] { .59f, .59f, .59f, 0, 0 }, new float[] { .11f, .11f, .11f, 0, 0 }, new float[] { 0 , 0 , 0 , 1, 0 }, new float[] { 0 , 0 , 0 , 0, 1 } } ); ImageAttributes imageAttributes = new ImageAttributes(); imageAttributes.SetColorMatrix(colorMatrix); targetGraphics.DrawImage ( sourceBitmap, new Rectangle(0, 0, sourceBitmap.Width, sourceBitmap.Height), 0, 0, sourceBitmap.Width, sourceBitmap.Height, GraphicsUnit.Pixel, imageAttributes ); targetGraphics.Dispose(); return targetBitmap; } #endregion |