2 * Pixastic Lib - Brightness/Contrast filter - v0.1.0
3 * Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/
4 * MIT License [http://www.opensource.org/licenses/mit-license.php]
7 Pixastic.Actions.brightness = {
9 process : function(params) {
11 var brightness = parseInt(params.options.brightness,10) || 0;
12 var contrast = parseFloat(params.options.contrast)||0;
13 var legacy = !!(params.options.legacy);
16 brightness = Math.min(150,Math.max(-150,brightness));
18 var brightMul = 1 + Math.min(150,Math.max(-150,brightness)) / 150;
20 contrast = Math.max(0,contrast+1);
22 if (Pixastic.Client.hasCanvasImageData()) {
23 var data = Pixastic.prepareData(params);
24 var rect = params.options.rect;
30 var offsetY = (y-1)*w4;
33 var offset = offsetY + (x-1)*4;
36 var r = data[offset] + brightness;
37 var g = data[offset+1] + brightness;
38 var b = data[offset+2] + brightness;
40 var r = data[offset] * brightMul;
41 var g = data[offset+1] * brightMul;
42 var b = data[offset+2] * brightMul;
46 r = (r - 128) * contrast + 128;
47 g = (g - 128) * contrast + 128;
48 b = (b - 128) * contrast + 128;
54 if (r > 255 ) r = 255;
55 if (g > 255 ) g = 255;
56 if (b > 255 ) b = 255;
67 checkSupport : function() {
68 return Pixastic.Client.hasCanvasImageData();