package com.partlyhuman.fx { import flash.display.BitmapData; import flash.geom.Point; public class Gamma { protected var RLUT:Array; protected var GLUT:Array; protected var BLUT:Array; protected var origin:Point; public function Gamma(g:Number) { origin = new Point(0, 0); RLUT = new Array(256); GLUT = new Array(256); BLUT = new Array(256); for (var v:int = 0; v < 256; v++) { BLUT[v] = int(Math.pow(v / 256.0, g) * 256); GLUT[v] = BLUT[v] << 8; RLUT[v] = GLUT[v] << 8; } } public function applyGamma(tobmp:BitmapData, original:BitmapData):void { tobmp.paletteMap(original, original.rect, origin, RLUT, GLUT, BLUT, null); } } }