이미지 자르기 C#

C#에서 프로그래밍 방식으로 이미지 작업을 수행하면 개발자는 크기 조정, 회전 및 자르기와 같은 다양한 조작을 수행할 수 있습니다. 이러한 작업 중 자르기는 이미지를 특정 영역에서 추출하거나 원하지 않는 여백을 제거하고자 할 때 특히 유용합니다. 이 가이드에서는 .NET을 위한 Conholdate.Total을 사용하여 C#에서 이미지를 자르는 방법에 대해 중점적으로 설명하겠습니다.

우리는 당신에게 두 가지 다른 자르기 기술을 안내할 것입니다. 하나는 변위 값을 사용하여 이미지의 모든 면에서 잘라내는 것이고, 다른 하나는 특정 부분을 분리하기 위해 사용자 지정 사각형을 정의하는 것입니다. 각 섹션에는 잘 문서화된 코드 조각과 실제 애플리케이션을 위한 실용적인 통찰이 포함되어 있습니다.

C#에서 이미지를 프로그래밍 방식으로 자르는 이유는 무엇인가요?

이미지를 프로그래밍적으로 자르는 것이 유리한 여러 시나리오가 있습니다:

  • 콘텐츠에 집중: 크롭 하면 이미지의 특정 부분을 강조할 수 있어 프로필 사진, 썸네일 또는 문서 스캔에 이상적입니다.

  • 자동화된 이미지 처리: 대량 이미지 편집 또는 사용자 업로드 콘텐츠가 포함된 애플리케이션에서 자르기 프로세스를 자동화하면 작업 흐름이 간소화되고 수동 작업이 제거됩니다.

  • 규정 준수 및 개인 정보 보호: 이미지를 공유하기 전에 민감하거나 관련 없는 데이터를 제거하기 위해 자르기를 사용할 수 있습니다.

크롭핑은 단순한 미적 조정이 아니라 데이터 처리, UX 디자인 및 시스템 성능의 중요한 부분입니다.

JPG PNG BMP 이미지 자르기 - .NET API 구성

You can setup Conholdate.Total for .NET easily with the NuGet installation command below:

Install-Package Conholdate.Total

C#에서 측면 이동으로 이미지 자르기

첫 번째 방법은 이미지의 테두리를 안쪽으로 이동시켜 크롭하는 방법을 보여줍니다. 이는 특히 이미지의 위쪽, 아래쪽, 왼쪽 및 오른쪽에서 균일하게 또는 비대칭으로 여백을 잘라내고 싶을 때 유용합니다.

// Load the image to be cropped.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Define shift values for all four sides.
    int leftShift = 10;
    int rightShift = 10;
    int topShift = 50;
    int bottomShift = 50;

    // Based on the shift values, apply the cropping on image. Crop method will shift the image bounds toward the center of image.
    rasterImage.Crop(leftShift, rightShift, topShift, bottomShift);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

이 예제에서는 PNG 이미지를 로드하고 각 측면에서 제거할 픽셀 수를 지정합니다. Crop 메서드는 이미지의 크기를 안쪽으로 조정하여 불필요한 테두리를 제거하면서 이미지의 무결성을 유지합니다. 이 방법을 사용하면 스캔한 문서, 화면 캡처 및 이미지 테두리에 적합한 일관된 가장자리 기반 크롭을 달성할 수 있습니다.

C#에서 정의된 사각형을 사용하여 이미지 자르기

두 번째 방법은 직사각형 경계를 사용하여 유지할 정확한 영역을 정의할 수 있도록 함으로써 더 큰 정밀도를 제공합니다. 이 접근 방식은 이미지 내에서 원하는 영역의 좌표와 크기를 알고 있을 때 이상적입니다.

// Load the image.
using (RasterImage rasterImage = (RasterImage)Image.Load("image.png"))
{
    // Before cropping, the image should be cached for better performance.
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Create an instance of Rectangle class with desired size and crop the image.
    Rectangle rectangle = new Rectangle(20, 20, 20, 20);
    rasterImage.Crop(rectangle);

    // Save cropped image.
    rasterImage.Save("cropped.png");
}

이 방법은 전자 상거래 사진의 제품 영역, 스캔한 문서의 텍스트 블록, 또는 도표에서 관심 영역과 같은 이미지의 특정 섹션을 분리해야 할 때 특히 유용합니다. 이러한 사각형을 정의하고 적용하는 것은 직관적이며 매우 효율적입니다.

무료 평가 라이센스

당신은 API가 제공하는 많은 다른 기능을 최대한 활용하기 위해 무료 임시 라이센스를 받을 수 있습니다.

결론

C#에서 이미지 크롭은 복잡할 필요가 없습니다. 테두리를 잘라내거나 특정 영역을 추출해야 하든, 빠르고 정확하게 작업을 수행할 수 있습니다. 이동 기반 및 사각형 기반 크롭을 모두 지원함으로써 문서 이미징에서 콘텐츠 개인화에 이르는 다양한 실제 사용 사례를 다룰 수 있는 유연성을 제공합니다.

이러한 기능을 .NET 애플리케이션에 통합함으로써 이미지 편집 작업을 자동화하고 사용자 경험을 향상시키며 대규모 데이터 세트 전반에 걸쳐 일관된 형식을 유지할 수 있습니다.

See Also