방법: 이미지 질감으로 도형 채우기

Image 클래스와 TextureBrush 클래스를 사용하여 닫힌 셰이프를 질감으로 채울 수 있습니다.

예제

다음 예제에서는 타원을 이미지로 채웁니다. 코드는 Image 개체를 생성한 다음, 해당 Image 개체의 주소를 인수로 TextureBrush 생성자에 전달합니다. 세 번째 문은 이미지를 스케일링하고, 네 번째 문은 스케일링된 이미지의 반복 복사본으로 타원을 채웁니다.

다음 코드에서 Transform 속성은 그리기 전에 이미지에 적용되는 변환을 포함합니다. 원본 이미지의 너비가 640픽셀이고 높이가 480픽셀이라고 가정합니다. 이 변환은 가로 및 세로 스케일링 값을 설정하여 이미지를 75×75로 축소합니다.

참고

다음 예제에서 이미지 크기는 75×75이고 타원 크기는 150×250입니다. 이미지가 채우는 타원보다 작기 때문에 타원은 이미지로 타일링됩니다. 타일링은 도형 경계에 도달할 때까지 이미지가 가로 및 세로로 반복됨을 의미합니다. 타일링에 대한 자세한 내용은 방법: 이미지로 도형 타일링을 참조하세요.

Image image = new Bitmap("ImageFile.jpg");
TextureBrush tBrush = new TextureBrush(image);
tBrush.Transform = new Matrix(
   75.0f / 640.0f,
   0.0f,
   0.0f,
   75.0f / 480.0f,
   0.0f,
   0.0f);
e.Graphics.FillEllipse(tBrush, new Rectangle(0, 150, 150, 250));
Dim image As New Bitmap("ImageFile.jpg")
Dim tBrush As New TextureBrush(image)
tBrush.Transform = New Matrix( _
   75.0F / 640.0F, _
   0.0F, _
   0.0F, _
   75.0F / 480.0F, _
   0.0F, _
   0.0F)
e.Graphics.FillEllipse(tBrush, New Rectangle(0, 150, 150, 250))

코드 컴파일

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

참고 항목