mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Color Adjustment 2.0 (#351)
* Rename test to test123 * Delete test123 * New color Ajustment Trilinear interpolation between the 8 corners of the color cube (black, red, green, blue, cyan, magenta, yellow, white) * Renaming * overloading getadjustmentX() * Renaming * Additional renaming * Added more RgbChannel * Added more colors to channelAdjustment * Added additional colors * Added additional colors * Added additional colors * Added additional color adjustments * Update MultiColorAdjustment.cpp * Fixed black adjustment * Color config in array form
This commit is contained in:
@@ -90,22 +90,47 @@ ColorTransform * Hyperion::createColorTransform(const QJsonObject & transformCon
|
||||
ColorAdjustment * Hyperion::createColorAdjustment(const QJsonObject & adjustmentConfig)
|
||||
{
|
||||
const std::string id = adjustmentConfig["id"].toString("default").toStdString();
|
||||
|
||||
RgbChannelAdjustment * redAdjustment = createRgbChannelAdjustment(adjustmentConfig["pureRed"].toObject(),RED);
|
||||
RgbChannelAdjustment * greenAdjustment = createRgbChannelAdjustment(adjustmentConfig["pureGreen"].toObject(),GREEN);
|
||||
RgbChannelAdjustment * blueAdjustment = createRgbChannelAdjustment(adjustmentConfig["pureBlue"].toObject(),BLUE);
|
||||
|
||||
|
||||
// QT5.4 needed
|
||||
//~ RgbChannelAdjustment * blackAdjustment = createRgbChannelAdjustment(adjustmentConfig["black"]. toArray(QJsonArray({"0","0","0" })));
|
||||
//~ RgbChannelAdjustment * whiteAdjustment = createRgbChannelAdjustment(adjustmentConfig["white"]. toArray(QJsonArray({"255","255","255"})));
|
||||
//~ RgbChannelAdjustment * redAdjustment = createRgbChannelAdjustment(adjustmentConfig["red"]. toArray(QJsonArray({"255","0","0" })));
|
||||
//~ RgbChannelAdjustment * greenAdjustment = createRgbChannelAdjustment(adjustmentConfig["green"]. toArray(QJsonArray({"0","255","0" })));
|
||||
//~ RgbChannelAdjustment * blueAdjustment = createRgbChannelAdjustment(adjustmentConfig["blue"]. toArray(QJsonArray({"0","0","255" })));
|
||||
//~ RgbChannelAdjustment * cyanAdjustment = createRgbChannelAdjustment(adjustmentConfig["cyan"]. toArray(QJsonArray({"0","255","255" })));
|
||||
//~ RgbChannelAdjustment * magentaAdjustment = createRgbChannelAdjustment(adjustmentConfig["magenta"].toArray(QJsonArray({"255","0","255" })));
|
||||
//~ RgbChannelAdjustment * yellowAdjustment = createRgbChannelAdjustment(adjustmentConfig["yellow"]. toArray(QJsonArray({"255","255","0" })));
|
||||
|
||||
RgbChannelAdjustment * blackAdjustment = createRgbChannelAdjustment(adjustmentConfig["black"].toArray(),BLACK);
|
||||
RgbChannelAdjustment * whiteAdjustment = createRgbChannelAdjustment(adjustmentConfig["white"].toArray(),WHITE);
|
||||
RgbChannelAdjustment * redAdjustment = createRgbChannelAdjustment(adjustmentConfig["pureRed"].toArray(),RED);
|
||||
RgbChannelAdjustment * greenAdjustment = createRgbChannelAdjustment(adjustmentConfig["pureGreen"].toArray(),GREEN);
|
||||
RgbChannelAdjustment * blueAdjustment = createRgbChannelAdjustment(adjustmentConfig["pureBlue"].toArray(),BLUE);
|
||||
RgbChannelAdjustment * cyanAdjustment = createRgbChannelAdjustment(adjustmentConfig["cyan"].toArray(),CYAN);
|
||||
RgbChannelAdjustment * magentaAdjustment = createRgbChannelAdjustment(adjustmentConfig["magenta"].toArray(),MAGENTA);
|
||||
RgbChannelAdjustment * yellowAdjustment = createRgbChannelAdjustment(adjustmentConfig["yellow"].toArray(),YELLOW);
|
||||
|
||||
ColorAdjustment * adjustment = new ColorAdjustment();
|
||||
adjustment->_id = id;
|
||||
adjustment->_rgbRedAdjustment = *redAdjustment;
|
||||
adjustment->_rgbGreenAdjustment = *greenAdjustment;
|
||||
adjustment->_rgbBlueAdjustment = *blueAdjustment;
|
||||
adjustment->_rgbBlackAdjustment = *blackAdjustment;
|
||||
adjustment->_rgbWhiteAdjustment = *whiteAdjustment;
|
||||
adjustment->_rgbRedAdjustment = *redAdjustment;
|
||||
adjustment->_rgbGreenAdjustment = *greenAdjustment;
|
||||
adjustment->_rgbBlueAdjustment = *blueAdjustment;
|
||||
adjustment->_rgbCyanAdjustment = *cyanAdjustment;
|
||||
adjustment->_rgbMagentaAdjustment = *magentaAdjustment;
|
||||
adjustment->_rgbYellowAdjustment = *yellowAdjustment;
|
||||
|
||||
// Cleanup the allocated individual adjustments
|
||||
delete blackAdjustment;
|
||||
delete whiteAdjustment;
|
||||
delete redAdjustment;
|
||||
delete greenAdjustment;
|
||||
delete blueAdjustment;
|
||||
|
||||
delete cyanAdjustment;
|
||||
delete magentaAdjustment;
|
||||
delete yellowAdjustment;
|
||||
|
||||
return adjustment;
|
||||
}
|
||||
|
||||
@@ -288,28 +313,58 @@ RgbChannelTransform* Hyperion::createRgbChannelTransform(const QJsonObject& colo
|
||||
return transform;
|
||||
}
|
||||
|
||||
RgbChannelAdjustment* Hyperion::createRgbChannelAdjustment(const QJsonObject& colorConfig, const RgbChannel color)
|
||||
RgbChannelAdjustment* Hyperion::createRgbChannelAdjustment(const QJsonArray& colorConfig, const RgbChannel color)
|
||||
{
|
||||
int varR=0, varG=0, varB=0;
|
||||
if (color == RED)
|
||||
if (color == BLACK)
|
||||
{
|
||||
varR = colorConfig["redChannel"].toInt(255);
|
||||
varG = colorConfig["greenChannel"].toInt(0);
|
||||
varB = colorConfig["blueChannel"].toInt(0);
|
||||
varR = colorConfig[0].toInt(0);
|
||||
varG = colorConfig[1].toInt(0);
|
||||
varB = colorConfig[2].toInt(0);
|
||||
}
|
||||
else if (color == WHITE)
|
||||
{
|
||||
varR = colorConfig[0].toInt(255);
|
||||
varG = colorConfig[1].toInt(255);
|
||||
varB = colorConfig[2].toInt(255);
|
||||
}
|
||||
else if (color == RED)
|
||||
{
|
||||
varR = colorConfig[0].toInt(255);
|
||||
varG = colorConfig[1].toInt(0);
|
||||
varB = colorConfig[2].toInt(0);
|
||||
}
|
||||
else if (color == GREEN)
|
||||
{
|
||||
varR = colorConfig["redChannel"].toInt(0);
|
||||
varG = colorConfig["greenChannel"].toInt(255);
|
||||
varB = colorConfig["blueChannel"].toInt(0);
|
||||
varR = colorConfig[0].toInt(0);
|
||||
varG = colorConfig[1].toInt(255);
|
||||
varB = colorConfig[2].toInt(0);
|
||||
}
|
||||
else if (color == BLUE)
|
||||
{
|
||||
varR = colorConfig["redChannel"].toInt(0);
|
||||
varG = colorConfig["greenChannel"].toInt(0);
|
||||
varB = colorConfig["blueChannel"].toInt(255);
|
||||
varR = colorConfig[0].toInt(0);
|
||||
varG = colorConfig[1].toInt(0);
|
||||
varB = colorConfig[2].toInt(255);
|
||||
}
|
||||
|
||||
else if (color == CYAN)
|
||||
{
|
||||
varR = colorConfig[0].toInt(0);
|
||||
varG = colorConfig[1].toInt(255);
|
||||
varB = colorConfig[2].toInt(255);
|
||||
}
|
||||
else if (color == MAGENTA)
|
||||
{
|
||||
varR = colorConfig[0].toInt(255);
|
||||
varG = colorConfig[1].toInt(0);
|
||||
varB = colorConfig[2].toInt(255);
|
||||
}
|
||||
else if (color == YELLOW)
|
||||
{
|
||||
varR = colorConfig[0].toInt(255);
|
||||
varG = colorConfig[1].toInt(255);
|
||||
varB = colorConfig[2].toInt(0);
|
||||
}
|
||||
|
||||
RgbChannelAdjustment* adjustment = new RgbChannelAdjustment(varR, varG, varB);
|
||||
return adjustment;
|
||||
}
|
||||
|
Reference in New Issue
Block a user