.NET을 사용하여 이미지와 경계 또는 라벨을 추가하는 방법

.NET을 사용하여 이미지와 경계 또는 라벨을 추가하는 방법

결합 된 이미지에 경계와 캡처를 추가하면 기술 보고서, 갤러리 및 마케팅 자료에 필수적인 명확성과 전문성을 향상시킵니다. .NET에 대한 Aspose.Imaging은 모든 패치 또는 시나리오에 대해 쉽게 자동화 할 수 있습니다.

현실 세계 문제

단순히 이미지를 결합하면 특히 갤러리 또는 측면 비교에서 시각적 혼란을 일으킬 수 있습니다. 국경은 이미지를 명확하게 분리하고 라벨은 맥락, 날짜 또는 제품 정보를 제공합니다.

솔루션 검토

Aspose.Imaging의 그래픽 API는 경계를 그릴 수 있고, 배경을 채우고, 융합 중에 모든 이미지에 텍스트를 덮을 수 있습니다. - 어떠한 패치, 스타일 또는 자동화 필요에 대 한 스칼라.

원칙

  • Visual Studio 2019 또는 이후
  • .NET 6.0 또는 이후 (또는 .Net Framework 4.6.2+)
  • NuGet에서 .NET에 대한 Aspose.Imaging
  • 융합 및 기록할 이미지 (모든 형식)
PM> Install-Package Aspose.Imaging

단계별 실행

단계 1 : 융합 레이아웃을 선택하고 이미지 준비

bool mergeHorizontal = true; // or false for vertical
string[] files = Directory.GetFiles("./input", "*.jpg");

단계 2 : 이미지 로드, 경계 / 라벨 설정 설정

var images = files.Select(f => Image.Load(f)).ToList();
int borderThickness = 5;
Color borderColor = Color.Black;
Font labelFont = new Font("Arial", 24, FontStyle.Bold);
Color labelColor = Color.Blue;
string[] labels = files.Select(Path.GetFileNameWithoutExtension).ToArray();

3단계 : 국경 및 라벨 공간으로 캔버스 크기를 계산합니다.

int labelHeight = 40;
int totalWidth = mergeHorizontal ? images.Sum(i => i.Width + borderThickness * 2) : images.Max(i => i.Width) + borderThickness * 2;
int totalHeight = mergeHorizontal ? images.Max(i => i.Height) + borderThickness * 2 + labelHeight : images.Sum(i => i.Height + borderThickness * 2 + labelHeight);

단계 4 : 국경과 캡션으로 각 그림을 그리십시오.

using (var outImg = Image.Create(new PngOptions(), totalWidth, totalHeight))
{
    var graphics = new Aspose.Imaging.Graphics(outImg);
    graphics.Clear(Color.White);
    int x = 0, y = 0;
    for (int i = 0; i < images.Count; i++)
    {
        var img = images[i];
        int drawX = mergeHorizontal ? x : (totalWidth - img.Width) / 2;
        int drawY = mergeHorizontal ? (totalHeight - img.Height - labelHeight) / 2 : y;
        // Draw border
        graphics.DrawRectangle(new Pen(borderColor, borderThickness), drawX - borderThickness, drawY - borderThickness, img.Width + borderThickness * 2, img.Height + borderThickness * 2);
        // Draw image
        graphics.DrawImage(img, drawX, drawY, img.Width, img.Height);
        // Draw label
        graphics.DrawString(labels[i], labelFont, new SolidBrush(labelColor), drawX, drawY + img.Height + 5);
        if (mergeHorizontal)
            x += img.Width + borderThickness * 2;
        else
            y += img.Height + borderThickness * 2 + labelHeight;
    }
    outImg.Save("./output/merged_with_borders_labels.png");
}
images.ForEach(img => img.Dispose());

단계 5 : 예보 및 Fine-Tune

  • 다른 글꼴, 색상 또는 국경 두께를 테스트합니다.
  • 긴 라벨 또는 작은 이미지에 대한 위치 조정

사례 및 응용 프로그램 사용

  • 마케팅 및 소셜 미디어는 제품 이름과 일치합니다.
  • 기술 문서 및 숫자 캡처를 가진 보고서
  • 이벤트 또는 전시회에 대한 광고 사진 벽
  • E-Commerce 제품 비교 차트

일반적인 도전과 해결책

도전 1 : 이미지 또는 경계를 덮는 라벨

** 솔루션:** 필요한 경우 레이블을 높이거나 텍스트 위치를 조정합니다.

도전 2 : 국경 덮개 이미지 콘텐츠

** 솔루션:** 이미지 영역 이외의 경계를 그리십시오 (샘플 코드와 같이).

도전 3 : 글꼴 또는 색상 문제

** 솔루션:** 읽을 수 있도록 웹 안전한 글꼴과 높은 대조 레이블 색상을 선택합니다.

성과 고려 사항

  • 모든 이미지를 그린 후에 배치하여 메모리 유출을 피하십시오.
  • PNG를 사용하여 명확한 경계와 손실없는 품질; 웹용 JPEG
  • 테스트 배치 크기 및 큰 콜라지 크기에 대 한 캔버스

모범 사례

  • 브랜딩을 위한 일관된 국경 및 라벨 스타일 유지
  • 목표 앱 또는 플랫폼에서 출력 예보
  • 역동적 인 폴더 또는 제품 목록을 위한 자동화
  • 스토어 또는 수출 출처 설정 반복 실행

고급 시나리오

시나리오 1 : 이미지에 따라 사용자 지정 경계

각 사진 또는 카테고리에 대해 다른 색상 / 두께를 그리십시오.

시나리오 2 : 회전 또는 진단 레이블

그래픽 변형을 창조적 인 스타일로 사용하십시오.

FAQ

** Q : 투명 또는 둥근 경계를 사용할 수 있습니까?**A: 예, 효과를 위해 반 투명한 색상이나 둥근 직경으로 인쇄하십시오.

**Q : 어떻게 여러 언어로 위치/캡션을 할 수 있습니까?**A: 번역 API를 사용하여 생성 labels[] 그림을 그리기 전에

** Q : 라벨 콘텐츠를 자동화할 수 있습니까?**A: 예, 파일 메타 데이터, EXIF, 또는 역동적 인 라벨링을위한 데이터베이스에서 추출.

결론

Aspose.Imaging for .NET을 사용하면 갤러리에서 기술 문서에 이르기까지 모든 작업 흐름에 자동화된 기록된, 시각적으로 분리된 조합 이미지를 쉽게 만들 수 있습니다.

See .NET API 참조를 위한 Aspose.Imaging 국경, 라벨 및 그림으로 더 많은 사용자 정의를 위해.

 한국어