방법: 불투명 및 반투명 선 그리기
선을 그리려면 Graphics 클래스의 DrawLine 메서드에 Pen 개체를 전달해야 합니다. Color 개체는 Pen 생성자의 매개 변수 중 하나입니다. 불투명 선을 그리려면 색의 알파 구성 요소를 255로 설정하고 반투명 선을 그리려면 1에서 254 사이의 적절한 값으로 설정합니다.
배경 위에 반투명 선을 그리면 선의 색이 배경색과 혼합됩니다. 알파 구성 요소에서는 선과 배경색이 혼합되는 방법을 지정합니다. 알파 값이 0에 가까우면 배경색에 대한 비중이 더 높고 255에 가까우면 선의 색에 대한 비중이 더 높습니다.
예제
아래 예제에서는 비트맵을 그린 다음 이 비트맵을 배경으로 하여 세 개의 선을 그립니다. 첫 번째 선의 알파 구성 요소는 255이므로 불투명 선이 됩니다. 두 번째 선과 세 번째 선의 알파 구성 요소는 128이므로 반투명 선이 됩니다. 따라서 선을 통해 배경 이미지를 볼 수 있습니다. CompositingQuality 속성을 설정하는 문에서는 세 번째 선을 감마 보정과 병행하여 혼합합니다.
다음 그림에서는 아래 코드를 실행한 결과를 보여 줍니다.
Dim bitmap As New Bitmap("Texture1.jpg")
e.Graphics.DrawImage(bitmap, 10, 5, bitmap.Width, bitmap.Height)
Dim opaquePen As New Pen(Color.FromArgb(255, 0, 0, 255), 15)
Dim semiTransPen As New Pen(Color.FromArgb(128, 0, 0, 255), 15)
e.Graphics.DrawLine(opaquePen, 0, 20, 100, 20)
e.Graphics.DrawLine(semiTransPen, 0, 40, 100, 40)
e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected
e.Graphics.DrawLine(semiTransPen, 0, 60, 100, 60)
Bitmap bitmap = new Bitmap("Texture1.jpg");
e.Graphics.DrawImage(bitmap, 10, 5, bitmap.Width, bitmap.Height);
Pen opaquePen = new Pen(Color.FromArgb(255, 0, 0, 255), 15);
Pen semiTransPen = new Pen(Color.FromArgb(128, 0, 0, 255), 15);
e.Graphics.DrawLine(opaquePen, 0, 20, 100, 20);
e.Graphics.DrawLine(semiTransPen, 0, 40, 100, 40);
e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected;
e.Graphics.DrawLine(semiTransPen, 0, 60, 100, 60);
코드 컴파일
앞의 예제는 Windows Forms에서 사용해야 하며 Paint 이벤트 처리기의 매개 변수인 PaintEventArgs e를 필요로 합니다.