Source Code

Saturation

Adjust saturation of images.

[source code] [compiled]
//-----------------------------------------
// LScript Image Filter - www.StephenCulley.co.uk - Saturation
//

@version 2.5
@warnings
@script image

Saturation;

create
{
    Saturation = 100;
    setdesc("www.StephenCulley.co.uk - Saturation : " + Saturation);
}

process: ifo
{

    for(i = 1;i <= ifo.height;++i)
    {
        for(j = 1;j <= ifo.width;++j)
        {
            Avg = 256 * (ifo.red[j,i] + ifo.green[j,i] + ifo.blue[j,i]) / 3;

            R = 256 * ifo.red[j,i];
            G = 256 * ifo.green[j,i];
            B = 256 * ifo.blue[j,i];
            
            ifo.red[j,i] = (1 / 256) * (R + Saturation / 100 * (R - Avg));
            ifo.green[j,i] = (1 / 256) * (G + Saturation / 100 * (G - Avg));
            ifo.blue[j,i] = (1 / 256) * (B + Saturation / 100 * (B - Avg));

         }
    }
}

load: what,io
{
    if(what == SCENEMODE)
    {
        Saturation = number(io.read());
        setdesc("www.StephenCulley.co.uk - Saturation : " + Saturation);
    }
}

save: what,io
{
    if(what == SCENEMODE)
    {
        io.writeln(Saturation);
    }
}

options
{
    reqbegin("Saturation");
    c1 = ctlnumber("Amount",Saturation);
    return if !reqpost();
    Saturation = getvalue(c1);
    setdesc("www.StephenCulley.co.uk - Saturation : " + Saturation);
    reqend();
}