here it is ... the upload-api, script-server, js2 (javascript phase2) branch merge...
[lhc/web/wiklou.git] / js2 / mwEmbed / libClipEdit / pixastic-lib / actions / solarize.js
1 /*
2 * Pixastic Lib - Solarize 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]
5 */
6
7 Pixastic.Actions.solarize = {
8
9 process : function(params) {
10 var useAverage = !!params.options.average;
11
12 if (Pixastic.Client.hasCanvasImageData()) {
13 var data = Pixastic.prepareData(params);
14 var rect = params.options.rect;
15 var w = rect.width;
16 var h = rect.height;
17 var w4 = w*4;
18 var y = h;
19 do {
20 var offsetY = (y-1)*w4;
21 var x = w;
22 do {
23 var offset = offsetY + (x-1)*4;
24
25 var r = data[offset];
26 var g = data[offset+1];
27 var b = data[offset+2];
28
29 if (r > 127) r = 255 - r;
30 if (g > 127) g = 255 - g;
31 if (b > 127) b = 255 - b;
32
33 data[offset] = r;
34 data[offset+1] = g;
35 data[offset+2] = b;
36
37 } while (--x);
38 } while (--y);
39 return true;
40 }
41 },
42 checkSupport : function() {
43 return (Pixastic.Client.hasCanvasImageData());
44 }
45 }