/* * Copyright (C) 2007 Authors: * Christopher Brown * Ted Gould * * Released under GNU GPL, read the file 'COPYING' for more information */ #include "extension/effect.h" #include "extension/system.h" #include "levelChannel.h" 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_enum("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(void) { Inkscape::Extension::build_from_mem( "\n" "" N_("Level (with Channel)") "\n" "org.inkscape.effect.bitmap.levelChannel\n" "\n" "Red Channel\n" "Green Channel\n" "Blue Channel\n" "Cyan Channel\n" "Magenta Channel\n" "Yellow Channel\n" "Black Channel\n" "Opacity Channel\n" "Matte Channel\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()); } }; /* namespace Bitmap */ }; /* namespace Internal */ }; /* namespace Extension */ }; /* namespace Inkscape */