이미지의 워터마크는 일반적으로 콘텐츠의 소유권을 주장하는 데 사용됩니다. 반면 이미지에는 무단 사용 또는 위조를 방지하기 위해 워터마크가 표시됩니다. 다양한 경우에 웹 또는 데스크탑 애플리케이션 내에서 워터마킹 기능을 자동화해야 할 수 있습니다. 이러한 시나리오의 경우 이 문서에서는 C#을 사용하여 프로그래밍 방식으로 이미지에 워터마크를 추가하는 방법을 다룹니다. 이것은 한 번에 이미지 배치를 워터마크해야 하는 경우에도 유용할 수 있습니다. 시작하겠습니다.
이미지에 워터마크를 추가하는 C# API
이미지에 워터마크를 추가하기 위해 Aspose.Imaging for .NET을 사용합니다. 다양한 이미지 형식을 지원하는 강력한 이미지 처리 API입니다. 또한 API를 사용하면 이미지를 더 쉽게 조작할 수 있습니다. API 바이너리를 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.
PM> Install-Package Aspose.Imaging
C#에서 이미지에 워터마크 추가
다음은 C#을 사용하여 이미지에 워터마크를 추가하는 단계입니다.
- Image 클래스를 사용하여 이미지를 로드합니다.
- Graphics 클래스의 인스턴스를 생성하고 Image 객체로 초기화합니다.
- Font 클래스를 사용하여 글꼴 패밀리, 크기, 면을 설정합니다.
- SolidBrush 클래스의 인스턴스를 만들고 색상 등의 속성을 설정합니다.
- StringFormat 클래스를 인스턴스화하여 텍스트 정렬을 설정합니다.
- Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat) 메서드를 사용하여 이미지에 워터마크를 추가합니다.
- Image.Save(String) 메서드를 사용하여 이미지를 저장합니다.
다음 코드 샘플은 C#에서 이미지에 워터마크를 추가하는 방법을 보여줍니다.
// 기존 PNG 이미지 로드
using (Image image = Image.Load("image.png"))
{
// 워터마크 텍스트로 String 객체 선언
string theString = "This is watermark";
// Graphics 클래스의 인스턴스를 생성 및 초기화하고 SizeF의 객체를 초기화하여 이미지 Size를 저장합니다.
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Font 인스턴스를 만들고 Font Face, Size 및 Style로 초기화합니다.
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// SolidBrush의 인스턴스 생성 및 다양한 속성 설정
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// StringFormat 클래스의 객체 초기화 및 다양한 속성 설정
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// 디스크에 이미지 저장 출력에 문자열 그리기
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.jpg");
}
C#의 이미지에 대각선 워터마크 추가
다양한 경우에 워터마크가 이미지에 대각선으로 적용됩니다. 이를 위해 .NET용 Aspose.Imaging을 사용하면 워터마크 텍스트를 특정 각도로 변환할 수 있습니다. 다음은 이미지에 대각선 워터마크를 추가하는 단계입니다.
- Image 클래스를 사용하여 이미지를 로드합니다.
- Graphics 클래스의 인스턴스를 생성하고 Image 객체로 초기화합니다.
- Font 클래스를 사용하여 글꼴 패밀리, 크기, 면을 설정합니다.
- SolidBrush 클래스의 인스턴스를 만들고 색상 등의 속성을 설정합니다.
- StringFormat 클래스를 인스턴스화하여 텍스트 정렬을 설정합니다.
- Matrix 클래스의 인스턴스를 생성하고 변형 각도를 설정합니다.
- Graphics.Transform 속성에 Matrix 객체를 할당합니다.
- Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat) 메서드를 사용하여 워터마크를 추가합니다.
- Image.Save(String) 메서드를 사용하여 이미지를 저장합니다.
다음 코드 샘플은 C#을 사용하여 이미지에 대각선 워터마크를 추가하는 방법을 보여줍니다.
// 기존 PNG 이미지 로드
using (Image image = Image.Load("Image.png"))
{
// 워터마크 텍스트로 String 객체 선언
string theString = "45 Degree Rotated Text";
// Graphics 클래스의 인스턴스를 생성 및 초기화하고 SizeF의 객체를 초기화하여 이미지 Size를 저장합니다.
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// Font 인스턴스를 만들고 Font Face, Size 및 Style로 초기화합니다.
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// SolidBrush의 인스턴스 생성 및 다양한 속성 설정
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// StringFormat 클래스의 객체 초기화 및 다양한 속성 설정
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// 변형을 위한 Matrix 클래스의 객체 생성
Matrix matrix = new Matrix();
// 먼저 번역 다음 회전
matrix.Translate(sz.Width / 2, sz.Height / 2);
matrix.Rotate(-45.0f);
// 행렬을 통한 변환 설정
graphics.Transform = matrix;
// 디스크에 이미지 저장 출력에 문자열 그리기
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.png");
}
무료 API 라이선스 받기
평가 제한 없이 API를 사용해보고 싶다면 임시 라이선스를 무료로 받으세요.
결론
이 기사에서는 C#을 사용하여 이미지에 워터마크를 추가하는 방법을 배웠습니다. 또한 워터마크 텍스트를 특정 각도로 변환하는 방법을 살펴보았습니다. 문서를 사용하여 C# 이미지 처리 API에 대해 자세히 알아볼 수 있습니다. 질문이나 질문이 있는 경우 포럼을 통해 문의하십시오.