Pixelando imágenes en Actionscript 3.0
Este post es una modificación de este experimento.
En el anterior recortaba una imagen en cuadrados, comprobando si contenían algún pixel transparente o no. En este divido la imagen en cuadrados, calculo el color que aparece mas veces en ese cuadrado, y creo un Shape relleno de ese color que coloco en las coordenadas del cuadrado.
La función que calcula el color dominante es esta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public static function obtenerColorPrincipal( source:BitmapData):Array { var n:Object = {}; var a:Array = []; var p:int; var alphaValue:uint for (var x:int = 0; x < source.width; x += 10) { for (var y:int = 0; y < source.height; y+= 10) { p = source.getPixel32(x, y); alphaValue = p >> 24 & 0xFF; if (alphaValue > 0x00) { n[p] ? n[p]++ : n[p] = 1; } } } for (var c:String in n) { a.push ( { colour:c, count:n[c] } ); } return a.sortOn( ["count"], Array.DESCENDING ); } |