.NET에서 그림을 그리드 또는 모자이크 레이아웃에 결합하는 방법

.NET에서 그림을 그리드 또는 모자이크 레이아웃에 결합하는 방법

사진 벽, 갤러리 및 마케팅 컬렉션은 단순히 측면 융합 이상이 필요합니다 - 그들은 네트워크 / 모자이크 배열을 필요로합니다.

현실 세계 문제

수동으로 모자이크 레이아웃을 만드는 것은 특히 수십 또는 수백 개의 이미지에 대해 느리고 오류가 발생합니다.자동화는 마케팅, 갤러리 또는 미리 보기 네트워크를위한 완벽하고 반복 가능한 레이아가 가능합니다.

솔루션 검토

Aspose.Imaging for .NET, 로드, 리시지 (필요한 경우) 및 네트워크에 어떤 수의 이미지를 배열 (선 × 열), 웹, 인쇄, 또는 아카이브를위한 단일 컴포지트를 수출.

원칙

  • Visual Studio 2019 또는 이후
  • .NET 6.0 또는 이후 (또는 .Net Framework 4.6.2+)
  • NuGet에서 .NET에 대한 Aspose.Imaging
  • 네트워크에 대한 이미지 폴더 (JPG, PNG, BMP 등)
PM> Install-Package Aspose.Imaging

단계별 실행

단계 1 : 이미지를 조직하고 네트워크 크기를 설정합니다.

int columns = 4, rows = 3; // Change as needed
string[] files = Directory.GetFiles("./input", "*.jpg");

단계 2: 모든 이미지를 충전하고 선택적으로 복구합니다.

var images = files.Take(columns * rows).Select(f => Image.Load(f)).ToList();
int thumbWidth = 200, thumbHeight = 200;
foreach (var img in images) img.Resize(thumbWidth, thumbHeight, ResizeType.LanczosResample);

3단계 : 캔버스 크기를 계산하고 모자이크를 만드십시오.

int totalWidth = columns * thumbWidth;
int totalHeight = rows * thumbHeight;
using (var outImg = Image.Create(new PngOptions(), totalWidth, totalHeight))
{
    var graphics = new Aspose.Imaging.Graphics(outImg);
    for (int row = 0; row < rows; row++)
    {
        for (int col = 0; col < columns; col++)
        {
            int idx = row * columns + col;
            if (idx >= images.Count) break;
            graphics.DrawImage(images[idx], new Aspose.Imaging.Rectangle(col * thumbWidth, row * thumbHeight, thumbWidth, thumbHeight));
        }
    }
    outImg.Save("./output/mosaic.png");
}
images.ForEach(img => img.Dispose());

단계 4 : 부분 둥지 또는 열을 처리하십시오.

  • 이미지가 < 라인 × 열을 계산하면 마지막 세포를 텅 비거나 필요한 경우 색상으로 채우십시오.

단계 5 : 예측 및 Tweak 출력

  • 조정, 격차 또는 오버랩을 확인하십시오; 원하는대로 소형 크기 또는 네트워크를 수정합니다.

사례 및 응용 프로그램 사용

  • 소셜 미디어 또는 갤러리 사진 벽
  • 마케팅 및 전자 상거래 콜라제
  • 예술 포트폴리오 및 증명서
  • 이벤트 또는 여행 사진 모자이크

일반적인 도전과 해결책

도전 1 : 다른 크기의 이미지

** 솔루션:** 항상 네트워크에 추가하기 전에 유니폼 덤불에 다시 밀어 넣으십시오.

도전 2 : 너무 적거나 너무 많은 이미지

** 솔루션:** 패드 네트워크 색상이 완전하지 않은 경우, 또는 너무 많은 경우 여러 모자이크로 처리.

도전 3 : 그리드 간격 또는 오버라프

** 솔루션:** 조심스럽게 차원을 계산; 항상 출력 예보.

성과 고려 사항

  • 손실없는 네트워크를 위한 PNG 사용, 웹 사용을 위한 JPEG
  • 큰 모자이크를 위해, RAM을 모니터하고 그림을 그린 후에 이미지를 배치합니다.
  • 완전한 자동화 전에 사전 샘플

모범 사례

  • 일관된 레이아웃을 위한 최소 크기 표준화
  • 일자리를 반복하기 위한 문서 네트워크 설정
  • 명확한 이름을 사용하십시오 (예 : gallery_mosaic_4x3.png)
  • 목적지 앱/사이트 전 라이브 사용

고급 시나리오

시나리오 1 : 이미지 사이에 경계 또는 라벨을 추가

그래픽을 사용하여 라인을 그리거나 명확성을 위해 텍스트를 덮으십시오.

시나리오 2 : 웹에 대한 반응적인 네트워크 생성

다양한 장치 붕괴점에 여러 개의 네트워크 크기를 자동화합니다.

FAQ

**Q: 나는 비 평방 또는 역동적 인 네트워크를 만들 수 있습니까?**A: 예, 필요 또는 이미지 계산에 따라 라인 / 열 / 크기를 조정합니다.

**Q : 이미지 사이에 패딩이나 경계를 추가하는 방법은 무엇입니까?**A : 캔버스 크기를 늘리고 필요한 경우 라인 / 직경을 그리십시오.

Q: 파일 형식을 혼합할 수 있습니까?**A: 예, 지원되는 모든 형식을 충전하십시오 - 출력으로 PNG/JPEG로 수출합니다.

결론

Aspose.Imaging for .NET은 강력한 새로운 갤러리, 마케팅 및 아카이브 레이아웃을 열어줍니다 - 완전히 자동화되고, 확장 가능하며, 매번 완벽한 픽셀.

See .NET API 참조를 위한 Aspose.Imaging 더 많은 네트워크, 콜라지 및 복합 예를 위해.

 한국어