[解説]
画像のRGBを入れ替えます。
具体的にはRのチャンネルをGで出力、BのチャンネルをRで出力といった具合で。
[パラメータ]
change_r - Rチャンネルを何で出力するか。
0 = Rで出力 / 1 = Gで出力 / 2 = Bで出力 (以下同じ)
change_g - Gチャンネルを何で出力するか。
change_b - Bチャンネルを何で出力するか。
[コード]
<languageVersion : 1.0;>
kernel RGBSwap
<
namespace : "ASADA";
vendor : "Asada Santohei";
version : 1;
description : "Swap RGB";
>
{
parameter int change_r
<
minValue : 0;
maxValue : 2;
defaultValue : 0;
>;
parameter int change_g
<
minValue : 0;
maxValue : 2;
defaultValue : 1;
>;
parameter int change_b
<
minValue : 0;
maxValue : 2;
defaultValue : 2;
>;
input image4 src;
output pixel4 dst;
void
evaluatePixel()
{
pixel4 samp = sampleNearest(src, outCoord());
pixel4 ret;
if (change_r == 0)
ret.r = samp.r;
else if (change_r == 1)
ret.r = samp.g;
else
ret.r = samp.b;
if (change_g == 0)
ret.g = samp.r;
else if (change_g == 1)
ret.g = samp.g;
else
ret.g = samp.b;
if (change_b == 0)
ret.b = samp.r;
else if (change_b == 1)
ret.b = samp.g;
else
ret.b = samp.b;
ret.a = samp.a;
dst = ret;
}
}

0 コメント:
コメントを投稿