// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (C) 2007 Authors: * Christopher Brown * Ted Gould * * Released under GNU GPL v2+, read the file 'COPYING' for more information. */ #include "extension/effect.h" #include "extension/system.h" #include "levelChannel.h" #include namespace Inkscape { namespace Extension { namespace Internal { namespace Bitmap { void LevelChannel::applyEffect(Magick::Image* image) { Magick::ChannelType channel = Magick::UndefinedChannel; if (!strcmp(_channelName, "Red Channel")) channel = Magick::RedChannel; else if (!strcmp(_channelName, "Green Channel")) channel = Magick::GreenChannel; else if (!strcmp(_channelName, "Blue Channel")) channel = Magick::BlueChannel; else if (!strcmp(_channelName, "Cyan Channel")) channel = Magick::CyanChannel; else if (!strcmp(_channelName, "Magenta Channel")) channel = Magick::MagentaChannel; else if (!strcmp(_channelName, "Yellow Channel")) channel = Magick::YellowChannel; else if (!strcmp(_channelName, "Black Channel")) channel = Magick::BlackChannel; else if (!strcmp(_channelName, "Opacity Channel")) channel = Magick::OpacityChannel; else if (!strcmp(_channelName, "Matte Channel")) channel = Magick::MatteChannel; Magick::Quantum black_point = Magick::Color::scaleDoubleToQuantum(_black_point / 100.0); Magick::Quantum white_point = Magick::Color::scaleDoubleToQuantum(_white_point / 100.0); image->levelChannel(channel, black_point, white_point, _mid_point); } void LevelChannel::refreshParameters(Inkscape::Extension::Effect* module) { _channelName = module->get_param_optiongroup("channel"); _black_point = module->get_param_float("blackPoint"); _white_point = module->get_param_float("whitePoint"); _mid_point = module->get_param_float("midPoint"); } #include "../clear-n_.h" void LevelChannel::init() { // clang-format off Inkscape::Extension::build_from_mem( "\n" "" N_("Level (with Channel)") "\n" "org.inkscape.effect.bitmap.levelChannel\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "0.0\n" "100.0\n" "1.0\n" "\n" "all\n" "\n" "\n" "\n" "" N_("Level the specified channel of selected bitmap(s) by scaling values falling between the given ranges to the full color range") "\n" "\n" "\n", new LevelChannel()); // clang-format on } }; /* namespace Bitmap */ }; /* namespace Internal */ }; /* namespace Extension */ }; /* namespace Inkscape */