%ffp // This template gets you started when you plan to enhance one of // your FilterFactory plugins with FilterMeister. For this purpose it is // important to be put the FF source code into FilterMeister's // ForEverTile handler as it gives you a lot of new possibilities. //------------------------------------------------------------------------------------------ // Filter Infos Category :"AstroPlugins" Title :"Low End Smoother" Copyright :"Copyright @2005" Author :"James Ryan" Organization:"Astroplugins" URL:"http://www.grekalova.com/plugins/" Filename :"Star Isolate.8bf" Description:"Isolate Stars" Version :"1.01" About :"!T !V\n!D\n" "!c\n!U" //Only apply filter to RGB and Grayscale images SupportedModes: RGBMode //------------------------------------------------------------------------------------------ // Filter Control Definitions // Insert you own slider label names and comment out the slider that // you don't need ctl(0):"Red Cutoff",val=50 ctl(1):"Green Cutoff",val=50 ctl(2):"Blue Cutoff", val=50 ctl(4):"Amount",range = (1,8),val=4 ctl(5):"Kernal Size",range = (1,4), val=2 ctl(6):"Red Range",range = (1,40), val=10 ctl(7):"Green Range",range = (1,40), val=10 ctl(8):"Blue Range",range = (1,40), val=10 //------------------------------------------------------------------------------------------ // Here comes the filter code ForEveryTile:{ int x,y,r,g,b,r1,g1,b1,rctl,gctl,bctl,amount,rcut,gcut,bcut; int intensity, xbox, i,j,k,l,m; dword cubed; int rave, gave, bave; int rbar, gbar, bbar; rcut = ctl(0); gcut = ctl(1); bcut = ctl(2); rctl = ctl(6); gctl = ctl(7); bctl = ctl(8); xbox = ctl(5); amount = ctl(4); for (z=z_start; z rctl) { if (rbar > r ) { pset(x,y,0, r + amount ); //red channel }else { pset(x,y,0, r - amount); } } if (abs(gbar - g) > gctl) { if (gbar > g ) { pset(x,y,1, g + amount ); //red channel }else { pset(x,y,1, g - amount); } } if (abs(bbar - b) > bctl) { if (bbar > b ) { pset(x,y,2, b + amount ); //red channel }else { pset(x,y,2, b - amount); } } } } } } for (y=y_start; y 0) { pset(x,y,0, pget(x,y,0) ); //red channel } else { pset(x,y,0, src (x,y,0) ); //red channel } if (pget(x,y,1) > 0) { pset(x,y,1, pget(x,y,1)) ; //red channel } else { pset(x,y,1, src (x,y,1) ); //red channel } if (pget(x,y,2) > 0) { pset(x,y,2, pget(x,y,2)) ; //red channel } else { pset(x,y,2, src (x,y,2) ); //red channel } } } updateProgress(0,0); return true; }//ForEveryTile