//-----------------------------------------
// LScript Image Filter - www.StephenCulley.co.uk - Duo
//
@version 2.5
@warnings
@script image
ColorA,ColorB,ColorC;
create
{
setdesc("www.StephenCulley.co.uk - Duo");
ColorA = <0,0,0>;
ColorB = <255,255,255>;
}
process: ifo
{
R = (ColorB.x - ColorA.x) / 256;
G = (ColorB.y - ColorA.y) / 256;
B = (ColorB.z - ColorA.z) / 256;
ColorC = ColorA;
for(i = 1;i <= 256;++i)
{
DuoR[i] = ColorC.x;
DuoG[i] = ColorC.y;
DuoB[i] = ColorC.z;
ColorC.x = ColorC.x + R;
ColorC.y = ColorC.y + G;
ColorC.z = ColorC.z + B;
}
for(i = 1;i <= ifo.height;++i)
{
for(j = 1;j <= ifo.width;++j)
{
DuoRGB = 256 * (ifo.red[j,i] + ifo.green[j,i] + ifo.blue[j,i]) / 3;
if(DuoRGB < 0) DuoRGB = 0;
if(DuoRGB > 255) DuoRGB = 255;
ifo.red[j,i] = (1 / 256) * DuoR[DuoRGB + 1];
ifo.green[j,i] = (1 / 256) * DuoG[DuoRGB + 1];
ifo.blue[j,i] = (1 / 256) * DuoB[DuoRGB + 1];
}
}
}
load: what,io
{
if(what == SCENEMODE)
{
items[1] = integer(io.read());
items[2] = integer(io.read());
items[3] = integer(io.read());
items[4] = integer(io.read());
items[5] = integer(io.read());
items[6] = integer(io.read());
ColorA = <items[1],items[2],items[3]>;
ColorB = <items[4],items[5],items[6]>;
}
}
save: what,io
{
if(what == SCENEMODE)
{
io.writeln(ColorA.x);
io.writeln(ColorA.y);
io.writeln(ColorA.z);
io.writeln(ColorB.x);
io.writeln(ColorB.y);
io.writeln(ColorB.z);
}
}
options
{
reqbegin("Duo");
reqsize(190,80);
c1 = ctlcolor("Color A",ColorA);
ctlposition(c1,0,4);
c2 = ctlcolor("Color B",ColorB);
ctlposition(c2,0,27);
return if !reqpost();
ColorA = getvalue(c1);
ColorB = getvalue(c2);
reqend();
}
|