subtype idKGScriptParserduration?ð framebaseencodingparms inputFormat inputCountpublicurltitlewww.fxscript.orguitype typedefaultstringvalueamountamountminmaxBÈBHBHrampA  acceleration Acceleration@@?€?€ bluraspect AspectÄzDz?€?€BÆprivatestaticsscript‚//Inspired by the excellent wind blur cross script by Matt Sandström (mattias@beauty.se) //This offers a bit more scope for user tweakage, and the option of a non-directional blur //This filter is freeware, released under the GPL license. //You can do what you want with it as long as you leave it unencoded and include this message. transition "blur cross" group "stib's transitions" wipeCode(0, 100); producesAlpha; input url, "www.fxscript.org", Label, "string" input amount, "amount", Slider, 50, 0, 100 ramp 20; input Acceleration, "Acceleration", Slider, 1, 0, 3 ; input BlurAspect, " Aspect", Slider, 1, -1000, 1000 ramp 99; code float w,h,BlendAmount, BlurFactor; dimensionsof(dest,w,h); image buf1[w][h]; Amount = (Amount/100)*(h+w)/2 //scale the blur amount to match the size of the screen if (BlurAspect < 1) BlurAspect = 1/(2-100*BlurAspect) //munges the 10000 to 10000 range into a 1/10000 (approx) to 10000 range with a change in ramp at 1 end if BlurAspect *= aspectof(buf1); //matches the aspect of the blur to the destination amount *=BlurAspect //changing the aspect seems to affect the blur amount. This compensates. BlurFactor = 1-power(Abs(100-200*ratio)/100,acceleration); //ramps up from zero to 1 and back to 0 with acceleration determining the sharpness of the peak // the factor of 100 is because Abs only handles integers, so we scale ratio up if (ratio<= 0.5) BlendAmount = BlurFactor/2; else BlendAmount = 1- BlurFactor/2 end if; blend(src1, src2, buf1, BlendAmount); blur(buf1, dest, amount*BlurFactor, BlurAspect) //version 2 has the blend taking place before the blur - so you only need to blur one image. Of course!name blur crossscriptid)groupstib's transitionswipecode wipeaccuracyd producesalphaencoded