Compatible with Newtek LightWave 9.6 and above.
// LScript Image Filter - www.StephenCulley.co.uk
//
// web address: http://www.stephenculley.co.uk
// email address: email@stephenculley.co.uk
/*
LScript Image Filter - Alpha
Image_Alpha.ls
*/
@version 2.5
@warnings
@script image
@name *Alpha
// Title
sTitle = "*Alpha";
// Version
sVersion = "v1.0";
aType = @"Solid","Luma","Luma (Invert)"@;
iType = 1;
create
{
setdesc(sTitle + " - " + aType[iType]);
}
process: ifo
{
if(iType == 1) // Solid
{
iProgress = ifo.height;
if(runningUnder() != SCREAMERNET) moninit(iProgress);
for(i = 1;i <= ifo.height;++i)
{
for(j = 1;j <= ifo.width;++j)
{
ifo.alpha[j,i] = 1.0;
}
if(runningUnder() != SCREAMERNET) if(monstep()) return;
}
}
if(iType == 2) // Luma
{
iProgress = ifo.height;
if(runningUnder() != SCREAMERNET) moninit(iProgress);
for(i = 1;i <= ifo.height;++i)
{
for(j = 1;j <= ifo.width;++j)
{
ifo.alpha[j,i] = clip(0.0,1.0,(ifo.red[j,i] + ifo.green[j,i] + ifo.blue[j,i]) * (1 / 3));
}
if(runningUnder() != SCREAMERNET) if(monstep()) return;
}
}
if(iType == 3) // Luma (Invert)
{
iProgress = ifo.height;
if(runningUnder() != SCREAMERNET) moninit(iProgress);
for(i = 1;i <= ifo.height;++i)
{
for(j = 1;j <= ifo.width;++j)
{
ifo.alpha[j,i] = clip(0.0,1.0,1.0 - ((ifo.red[j,i] + ifo.green[j,i] + ifo.blue[j,i]) * (1 / 3)));
}
if(runningUnder() != SCREAMERNET) if(monstep()) return;
}
}
}
// CLIP
clip: min,max,n
{
if(n < min) n = min;
if(n > max) n = max;
return(n);
}
load: what,io
{
if(what == SCENEMODE)
{
iType = io.read().asInt();
setdesc(sTitle + " - " + aType[iType]);
}
}
save: what,io
{
if(what == SCENEMODE)
{
io.writeln(iType);
}
}
options
{
reqbegin(sTitle + " " + sVersion);
// Control
ctrl_c0 = ctlchoice("Type",iType,@"Solid","Luma","Luma Invert"@); // Type
// Developer
ctrl_dev0 = ctltext("","developer: Stephen Culley","http://www.stephenculley.co.uk");
return if !reqpost();
iType = getvalue(ctrl_c0);
setdesc(sTitle + " - " + aType[iType]);
reqend();
}

All scripts available at my Google Drive at
https://drive.google.com/open?id=1cR_q2GVUAJHumic1-A3eXV16acQnVTWs

No comments:
Post a Comment