PictureBox 컨트롤 등에 이미지를 표시하기 위해서는 Image 속성에 할당을 하면됩니다.
그리고 그 이미지 위에 무엇인가 추가적으로 이미지처리를 하기 위해서는 Graphics GDI+ 개체를 구해서
드로잉을 해주면 원하는 글자나 선, 사각형, 원형 등의 도형을 그릴 수 있게 됩니다.
이때, 원본이미지 위에 도형이나 선을 투명하게 그려주면 좀더 세련되 보이고 멋있는 연출을 할 수 있습니다.
도형도 보이고, 이미지도 반투명하게 보이게 되니까요.
FillRectangle 함수와 DrawRectangle 함수를 이용한 반투명 도형그리기
반투명한 사각형을 그려보도록 하겠습니다. 샘플 소스를 참고하세요.
샘플로 사용한 사진은 걸그룹 블랙핑크입니다.
위 원본 이미지에 FillRectangle, DrawRectangle을 이용해 이미지 위에 투명한 도형을 그릴겁니다.
아래 사진처럼요. (2개의 Rectangle)
//
public static Image DrawRect(Image img, string FileFullPath)
{
int sx = 25; //큰 사각형 좌표
int sy = 25;
int ex = 575;
int ey = 375;
int sx2 = 50; //작은 사각형 좌표
int sy2 = 150;
int ex2 = 527;
int ey2 = 344;
Rectangle raBig;
Rectangle raSmall;
try
{
string realFileFullPath = Path.GetFileFullPath(FileFullPath);
string[] sRect = realFileFullPath.Split('_');
if (sRect.Length >= 5)
{
raBig = new Rectangle(sx, sy, ex - sx, ey - sy);
raSmall = new Rectangle(sx2, sy2, ex2-sx2, ey2 - sy2);
using (Graphics grp = Graphics.FromImage(img))
{
Brush bigBrush = new SolidBrush(Color.FromArgb(16, 0, 0, 255));
grp.FillRectangle(bigBrush, raBig);
Pen pSmall = new Pen(Color.FromArgb(128, 0, 255, 0), 4);
pSmall.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
grp.DrawRectangle(pSmall, raSmall);
}
return img;
}
}catch(Exception ex)
{
}
return img;
}
//
반투명을 위한 핵심 함수
Brush bigBrush = new SolidBrush(Color.FromArgb(16, 0, 0, 255));
이 코드에서 브러쉬인 bigBrush를 생성할때 Color.FromArgb(16, 0, 0, 255) 를 통해 Alpha값을 지정하여 주는게 핵심포인트입니다.
Pen pSmall = new Pen(Color.FromArgb(128, 0, 255, 0), 4);
Pen을 생성할 때도 마찬가지고요.
댓글