HiSlope
Download or fork HiSlope from Github
Then make sure you read the WIKI
Proper docs and more examples soon to follow. Stay patient :)
Hello world
import hislope.core.FilterChain; import hislope.display.MetaBitmapData; import hislope.filters.inputs.WebCam; import hislope.filters.basic.Blur; import hislope.filters.color.HSBC; import flash.events.Event; import hislope.events.HiSlopeEvent; import hislope.gui.Output; // create chain of filters and specify size var filterChain:FilterChain = new FilterChain("hello world", 640, 480); addChild(filterChain); // create MetaBitmapData var processedBmpData:MetaBitmapData = new MetaBitmapData(); // create and position output window var output:Output = new Output(processedBmpData, "output"); addChild(output); output.x = filterChain.width + 10; output.scale = 1.0; // initialize input var input:WebCam = new WebCam(); input.addEventListener(HiSlopeEvent.INPUT_RENDERED, render); // add example filters to the filter chain filterChain.addFilter(input, true); filterChain.addFilter(new HSBC(), true); filterChain.addFilter(new Blur(), true); // when input is rendered process filter chain function render(event:Event):void { filterChain.process(processedBmpData); }
Filter template
package { // IMPORTS //////////////////////////////////////////////////////////////////////////////// import hislope.display.MetaBitmapData; import hislope.filters.FilterBase; // CLASS ////////////////////////////////////////////////////////////////////////////////// public class FilterName extends FilterBase { // CONSTANTS ////////////////////////////////////////////////////////////////////////// private static const NAME:String = "Filter Name"; private static const PARAMETERS:Array = [ { name: "param1", label: "param 1", current: 0.1, min: 0, max: 1, type: "number" }, { name: "param2", label: "param 2", current: 1, min: 0, max: 255, type: "int" } ]; private static const DEBUG_VARS:Array = [ "time", "frames" ]; // MEMBERS //////////////////////////////////////////////////////////////////////////// public var time:Number; public var frames:Number; // PARAMETERS ///////////////////////////////////////////////////////////////////////// public var param1:Number; public var param2:int; // CONSTRUCTOR //////////////////////////////////////////////////////////////////////// public function FilterName(OVERRIDEN:Object = null) { // init your bitmaps, variables, etc. here time = 0; frames = 0; init(NAME, PARAMETERS, OVERRIDEN, DEBUG_VARS); } // PUBLIC METHODS ///////////////////////////////////////////////////////////////////// override public function process(metaBmpData:MetaBitmapData):void { // do operations time += param1; frames += param2; getPreviewFor(metaBmpData); } override public function updateParams():void { // update parameters if changed } // PRIVATE METHODS //////////////////////////////////////////////////////////////////// } }