Слой настройки черного и белого

Работа с коррекцией уровней Photoshop в Java

В этой статье мы узнаем, как программно настраивать тоновый диапазон и баланс цвета фотографии в формате файла PSD с помощью Java. Мы не используем сам редактор фотографий Adobe® Photoshop®. Вместо этого мы используем библиотеку Aspose.PSD для Java, которая самостоятельно работает с документом Photoshop.

Хотя Aspose.PSD для Java поддерживает больше чем достаточно инструментов для редактирования фотографий в нужном нам стиле, давайте воспользуемся API слоя коррекции уровней, который является одним из самых простых и быстрых способов выполнения работы.

Обзор API

Текущая реализация (20.6 на момент написания) API слоя коррекции уровней поддерживает все основные функции уровней Photoshop, а именно – настройку входных и выходных уровней для композитного канала (RGB) а также для каждого основного цветового канала (красный, зелёный и синий).

API слоя коррекции уровней прямолинеен. Класс LevelsLayer является точкой входа для коррекции уровней. Он содержит несколько методов для доступа к цветовым каналам: getMasterChannel и getChannel(int). Оба метода возвращают LevelChannel, который имеет соответствующие свойства для манипулирования входными и выходными уровнями. Разница в том, что getMasterChannel служит для коррекции композитного цветового канала (RGB), в то время как getChannel обращается к определённому цветовому каналу (красный, зелёный или синий) по его индексу.

Совместимость с цветовыми режимами

Следует отметить, что слой коррекции уровней совместим с подавляющим большинством цветовых режимов в соответствии с уровнями Photoshop. Поэтому возможна настройка уровней для изображений в режимах Чёрно-белый (серый канал), RGB (RGB, красный, зелёный и синий каналы), CMYK (CMYK, циан, маджента, жёлтый и черный каналы), Дуотон (монохромный канал) и LAB (яркость, a и b каналы).

Настройка тонового диапазона

Простыми словами, коррекция тонов применяется к изображению для перераспределения теней и светов для лучшего равномерного распределения средних тонов. В общем, это делает изображение более контрастным, если выполнено правильно. Например, давайте возьмём фотографию собаки (b) и настроим её тоновый диапазон (a – скриншот взят из окна уровней Photoshop для наглядности), чтобы сделать фото более контрастным (c).

|Рисунок 1 слоя уровней|

Для настройки общего тонового диапазона изображения, входные уровни мастер-канала должны быть установлены следующим образом:

LevelsLayer levelsLayer = psdImage.addLevelsAdjustmentLayer();

LevelChannel masterChannel = levelsLayer.getMasterChannel();
masterChannel.setInputShadowLevel(( **short** )21);
masterChannel.setInputMidtoneLevel(( **float** )1.19);
masterChannel.setInputHighlightLevel(( **short** )229);

Следует помнить, что входные уровни должны находиться в диапазоне от 0 до 253 для теней, от 9.99 до 0.01 для средних тонов и от 2 до 255 для светов. Диапазон выходных уровней должен быть от 0 до 255.

Хотите ещё примеров? Вы можете найти их на Github и в базе знаний.

Заключение

В заключение, Aspose.PSD для Java имеет удобный и простой API для изменения тонового диапазона и баланса цвета изображения, который совместим с практически всеми цветовыми режимами. API слоя коррекции уровней библиотеки похож на уровни Photoshop, поэтому начать работу легко, даже если вы раньше не работали с этой библиотекой.