다음을 통해 공유


방법: 불투명 및 반투명 선 그리기

선을 그리는 경우 Pen 개체를 DrawLine 클래스의 Graphics 메서드에 전달해야 합니다. Pen 생성자의 매개 변수 중 하나는 Color 개체입니다. 불투명 선을 그리려면 색의 알파 구성 요소를 255로 설정합니다. 반투명 선을 그리려면 알파 구성 요소를 1에서 254 사이의 임의 값으로 설정합니다.

배경 위에 반투명 선을 그리면 선 색이 배경색과 혼합됩니다. 알파 구성 요소는 선 색과 배경색을 혼합하는 방법을 지정합니다. 알파 값이 0에 가까우면 배경색에 더 많은 가중치가 적용되고 알파 값이 255에 가까우면 선 색에 더 많은 가중치가 적용됩니다.

예제

다음 예제에서는 비트맵을 그린 다음 이 비트맵을 배경으로 사용하는 세 개의 선을 그립니다. 첫 번째 선은 알파 구성 요소 255를 사용하므로 불투명합니다. 두 번째 및 세 번째 선은 알파 구성 요소 128을 사용하므로 반투명합니다. 선을 통과하는 배경 이미지를 볼 수 있습니다. CompositingQuality 속성을 설정하는 문은 감마 보정과 함께 세 번째 선에 대한 혼합이 수행되도록 합니다.

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

다음 그림에서는 다음 코드의 출력을 보여 줍니다.

불투명 및 반투명 출력을 보여주는 그림

코드 컴파일

앞의 예는 Windows Forms에서 사용하도록 설계되었으며 PaintEventArgs 이벤트 처리기의 매개 변수인 ePaint가 필요합니다.

참고 항목