topical media & game development

talk show tell print

student-ar-org-papervision3d-core-effects-BitmapPixelateEffect.ax

student-ar-org-papervision3d-core-effects-BitmapPixelateEffect.ax [swf] [flash] flex


  
...
author: Default
version: 0.1

  
  
  package org.papervision3d.core.effects {
          import flash.display.BitmapData;
          import flash.geom.Rectangle;
          import org.papervision3d.view.layer.BitmapEffectLayer;
  
          public class @ax-student-ar-org-papervision3d-core-effects-BitmapPixelateEffect extends AbstractEffect{
                  
                  private var layer:BitmapEffectLayer;
                  public var size:int;
                  
                  public function @ax-student-ar-org-papervision3d-core-effects-BitmapPixelateEffect(size:int = 4){
                          
                          this.size = size;
                  }
  
                  
                  public override function attachEffect(layer:BitmapEffectLayer):void{
                          
                          this.layer = BitmapEffectLayer(layer);
                          
                  }
                  public override function preRender():void{
                          
                          
                  }
                  
                  public override function postRender():void{
                          
                          if(size <= 1)
                                  return;
                          
                          var xs:Number = Math.ceil(layer.canvas.width/size);
                          var ys:Number = Math.ceil(layer.canvas.height/size);
                          
                          var xPos:Number = 1;
                          var yPos:Number = 1;
                          
                          var rect:Rectangle = new Rectangle(1, 1, size, size);
                          var canvas:BitmapData = layer.canvas;
                          
                          for(var i:Number = 0;i<=xs;i++){
                                  for(var j:Number = 0;j<=ys;j++){
                                          xPos = i*size+1;
                                          yPos = j*size+1;
                                          rect.x = xPos-size/2;
                                          rect.y = yPos-size/2;
                                          canvas.fillRect(rect, canvas.getPixel32(xPos, yPos));
                                          
                                  }
                          }                        
                  }
          }
          
  }
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.