Настройка контрастности, яркости и гаммы изображения в C#

Контрастность), яркость и гамма — популярные атрибуты, которые используются для настройки изображений. Различные значения этих атрибутов устанавливаются для управления и улучшения внешнего вида изображений. В этой статье мы покажем вам, как программно настроить контрастность, яркость и гамму изображения на C#. Вы можете использовать это для реализации возможностей редактирования изображений из ваших приложений .NET.

C# API для настройки контрастности, яркости и гаммы изображения

Aspose.Imaging for .NET — это мощный и многофункциональный API-интерфейс обработки изображений для платформ .NET/.NET Standard. Он поддерживает работу с широким спектром форматов изображений без написания сложного кода. Мы будем использовать этот API для настройки контрастности, яркости и гаммы изображений в C#. Вы можете скачать API или установить его в свои приложения .NET с помощью NuGet.

PM> Install-Package Aspose.Imaging

Настройка контрастности изображения в C#

Контраст определяется как разница в интенсивности пикселей. Его значение корректируется, чтобы сделать объекты на изображении более заметными и различимыми. При высокой контрастности каждый объект на изображении выглядит очень четким, как фотографии, сделанные при солнечном свете. А вот при низком контрасте объекты почти не различишь, как и в туманную погоду.

Давайте посмотрим, как настроить контрастность изображения на C# с помощью Aspose.Imaging for .NET.

  • Сначала загрузите изображение с помощью класса Image.
  • Затем приведите объект к типу RasterImage.
  • Кэшировать изображение, если оно не использует метод RasterImage.CacheData().
  • Отрегулируйте контрастность в диапазоне [-100, 100], используя метод RasterImage.AdjustContrast(float).
  • Наконец, сохраните полученное изображение с помощью метода RasterImage.Save(string).

В следующем примере кода показано, как настроить контрастность изображения в C#.

// Загрузите изображение в экземпляр Image
using (Image image = Image.Load("image.png"))
{
    // Трансляция в растровое изображение
    RasterImage rasterImage = (RasterImage)image;

    // Кэшируйте RasterImage для лучшей производительности
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Отрегулируйте контраст
    rasterImage.AdjustContrast(30);             

    // Сохранить изображение
    image.Save("image-updated-contrast.png");
}

Ниже приведено сравнение входного и выходного изображений после увеличения контрастности.

Настройка контрастности изображений в C#

Настройка контрастности изображения

Отрегулируйте яркость изображения в C#

Атрибут яркости обычно управляет видимостью объектов на изображении. Его значение регулируется для увеличения или уменьшения темноты. Ниже приведены шаги по изменению яркости изображения в C#.

  • Сначала загрузите изображение с помощью класса Image.
  • Привести объект к типу RasterImage.
  • Кэшировать изображение, если оно не использует метод RasterImage.CacheData().
  • Отрегулируйте яркость изображения с помощью метода RasterImage.AdjustBrightness(float).
  • Наконец, сохраните полученное изображение с помощью метода RasterImage.Save(string).

В следующем примере кода показано, как настроить яркость изображения в C#.

// Загрузите изображение в экземпляр Image
using (Image image = Image.Load("image.png"))
{
    // Трансляция в растровое изображение
    RasterImage rasterImage = (RasterImage)image;

    // Кэшируйте RasterImage для лучшей производительности
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Отрегулируйте яркость
    rasterImage.AdjustBrightness(70);

    // Сохранить изображение
    image.Save("image-updated-bightness.png");
}

Ниже приведено сравнение входного и выходного изображений после регулировки яркости.

Настройка яркости изображений в C#

Настройка яркости изображения

Изменить гамму изображения в C#

Атрибут гамма используется для изменения соотношения красного, зеленого и синего цветов в изображении. Кроме того, он также изменяет яркость изображения. Ниже приведены шаги по изменению значения гаммы изображения в C#.

  • Сначала загрузите изображение с помощью класса Image.
  • Привести объект к типу RasterImage.
  • Кэшировать изображение, если оно не использует метод RasterImage.CacheData().
  • Измените гамму изображения с помощью метода RasterImage.AdjustGamma(float, float, float).
  • Наконец, сохраните полученное изображение с помощью метода RasterImage.Save(string).

В следующем примере кода показано, как настроить гамму изображения в C#.

// Загрузите изображение в экземпляр Image
using (Image image = Image.Load("image.png"))
{
    // Трансляция в растровое изображение
    RasterImage rasterImage = (RasterImage)image;

    // Кэшируйте RasterImage для лучшей производительности
    if (!rasterImage.IsCached)
    {
        rasterImage.CacheData();
    }

    // Настроить гамму
    rasterImage.AdjustGamma(2.2f, 2.2f, 2.2f);

    // Сохранить изображение
    image.Save("image-updated-gamma.png");
}

Ниже приведено сравнение входного и выходного изображений после настройки значения гаммы.

Настройка гаммы изображений в C#

Настройка гаммы изображения

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию для использования Aspose.Imaging for .NET без ограничений пробной версии.

Вывод

В этой статье вы узнали, как настроить контрастность, яркость и гамму изображений в C#. Кроме того, образцы кода продемонстрировали, как выглядит изображение после изменения контраста, яркости и гаммы. Если вы хотите узнать больше об API обработки изображений .NET, посетите документацию. Кроме того, загрузите полные образцы исходного кода API с GitHub. Если у вас есть какие-либо вопросы или вопросы, свяжитесь с нами на нашем форуме.

Смотрите также