Обрезка изображений C#

Работа с изображениями программно на C# позволяет разработчикам выполнять различные манипуляции, такие как изменение размера, вращение и обрезка. Среди этих задач обрезка особенно полезна, когда вы хотите извлечь конкретную область из изображения или удалить нежелательные поля. В этом руководстве мы сосредотачимся на том, как обрезать изображения в C# с использованием Conholdate.Total для .NET.

Мы познакомим вас с двумя различными техниками обрезки: одна с использованием значений сдвига для обрезки изображения со всех сторон, а другая — с определением настраиваемого прямоугольника для изоляции конкретной части изображения. Каждый раздел содержит хорошо документированные фрагменты кода и практические идеи для реальных приложений.

Почему обрезать изображения программно на C#?

Есть несколько сценариев, где программное обрезание изображений полезно:

  • Сфокусируйтесь на содержании: Обрезка позволяет вам выделить конкретную часть изображения, что делает ее идеальной для фотографий профиля, миниатюр или сканов документов.

  • Автоматизированная обработка изображений: В приложениях, связанных с массовым редактированием изображений или загруженным пользователями контентом, автоматизация процесса обрезки упрощает рабочие процессы и устраняет ручной труд.

  • Соблюдение и конфиденциальность: Обрезка может быть использована для удаления чувствительных или неуместных данных перед обменом изображениями.

Обрезка - это не просто эстетическая настройка, это важная часть обработки данных, UX-дизайна и производительности системы.

Обрезка изображений JPG PNG BMP - конфигурация .NET API

Вы можете установить Conholdate.Total for .NET легко с помощью команды установки NuGet ниже:

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