Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: src/site/samples/imagefilters/example/imagefilters.dart

Issue 30853002: Added several more HTML5 samples (Closed) Base URL: https://github.com/dart-lang/dartlang.org.git@master
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 import "dart:html" as q;import "dart:math" as JB;import "dart:typed_data" as aB; class bB{static const cB="Chrome";static const dB="Firefox";final XB;final m inimumVersion;const bB(this.XB,[this.minimumVersion]);}class eB{const eB();}clas s fB{final name;const fB(this.name);}class gB{const gB();}class hB{const hB();} class iB{var u;iB( g){u=YB(g);} YB( g){var h=new q.CanvasElement(width:g.width,h eight:g.height);var i=h.getContext('2d');i.drawImage(g,0,0);return i.getImageDat a(0,0,h.width,h.height);} PB( g, h){var j=new q.CanvasElement(width:g,height:h); var i=j.getContext('2d');return i.createImageData(g,h);} QB(){var h=u.data;for(v ar g=0;g<h.length;g+= 4){var i=h[g];var j=h[g+1];var k=h[g+2];var l=(0.2126*i).t oInt()+(0.7152*j).toInt()+(0.0722*k).toInt();h[g]=h[g+1]=h[g+2]=l;}return u;} WB ( i){var h=u.data;for(var g=0;g<h.length;g+= 4){h[g]+=i;h[g+1]+=i;h[g+2]+=i;}ret urn u;} threshold( k){var h=u.data;for(var g=0;g<h.length;g+= 4){var i=h[g];var l=h[g+1];var m=h[g+2];var j=(0.2126*i+0.7152*l+0.0722*m>=k)?255:0;h[g]=h[g+1]=h[ g+2]=j;}return u;} KB( CB,[ IB=false]){var LB=IB?1:0;var s=(JB.sqrt(CB.length).t oInt());var DB=s~/2;var k=u.data;var g=u.width;var BB=u.height;var EB=PB(g,BB);v ar h=EB.data;for(var l=0;l<BB;l++ ){for(var j=0;j<g;j++ ){var FB=0.0,GB=0.0,HB=0 .0,v=0.0;var m=(l*g+j)*4;for(var n=0;n<s;n++ ){for(var i=0;i<s;i++ ){var MB=JB.m in(BB-1,JB.max(0,l+n-DB));var NB=JB.min(g-1,JB.max(0,j+i-DB));var t=(MB*g+NB)*4; var o=CB[(n*s+i)];FB+= k[t]*o;GB+= k[t+1]*o;HB+= k[t+2]*o;v+= k[t+3]*o;}}h[m]=FB .toInt();h[m+1]=GB.toInt();h[m+2]=HB.toInt();h[m+3]=(v+LB*(255-v)).toInt();}}ret urn EB;} ZB( o, n){var k=QB();var i=OB(k,n);var m=OB(k,o);var h=PB(i.width,i.hei ght);for(var g=0;g<h.data.length;g+= 4){var j=i.data[g].abs();h.data[g]=j.toInt( );var l=m.data[g].abs();h.data[g+1]=l.toInt();h.data[g+2]=((j+l)/4).toInt();h.da ta[g+3]=255;}return h;} OB( CB, GB,{ opaque: false}){var LB=opaque?1:0;var t=(JB .sqrt(GB.length).toInt());var IB=t~/2;var k=CB.data;var g=CB.width;var n=CB.heig ht;var HB=new RB(new aB.Float32List(g*n*4),g,n);var h=HB.data;for(var l=0;l<n;l+ + ){for(var j=0;j<g;j++ ){var EB=0.0,FB=0.0,DB=0.0,BB=0.0;var m=(l*g+j)*4;for(va r s=0;s<t;s++ ){for(var i=0;i<t;i++ ){var MB=JB.min(n-1,JB.max(0,l+s-IB));var NB =JB.min(g-1,JB.max(0,j+i-IB));var v=(MB*g+NB)*4;var o=GB[(s*t+i)];EB+= k[v]*o;FB += k[v+1]*o;DB+= k[v+2]*o;BB+= k[v+3]*o;}}h[m]=EB;h[m+1]=FB;h[m+2]=DB;h[m+3]=(BB +LB*(255-BB));}}return HB;}}class RB{final data;final width,height;RB(this.data ,this.width,this.height);} main(){final l=40;final o=128;final t=[0,-1,0,-1,5,-1 ,0,-1,0];final n=[1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9];final s=[-1,0,1,-2,0,2,-1 ,0,1];final m=[-1,-2,-1,0,0,0,1,2,1];var g=q.query('.orig');q.window.onLoad.list en((h)=>SB(g));q.query('[name = "grayscale"]').onClick.listen((h)=>AB('grayscale ',()=>new iB(g).QB()));q.query('[name = "brightness"]').onClick.listen((h)=>AB(' brightness',()=>new iB(g).WB(l)));q.query('[name = "threshold"]').onClick.listen ((h)=>AB('threshold',()=>new iB(g).threshold(o)));q.query('[name = "sharpen"]'). onClick.listen((h)=>AB('sharpen',()=>new iB(g).KB(t)));q.query('[name = "blur"]' ).onClick.listen((h)=>AB('blur',()=>new iB(g).KB(n)));q.query('[name = "sobel"]' ).onClick.listen((h)=>AB('sobel',()=>new iB(g).ZB(s,m)));q.query('[name = "custo m"]').onClick.listen((h)=>AB('custom',(){var j=q.query('#customMatrix').queryAll ('input');var k=new List();for(var i=0;i<j.length;i++ ){k.add(double.parse(j[i]. value));}return new iB(g).KB(k,true);}));} SB( j){var i=q.queryAll('canvas');for (var h=0;h<i.length;h++ ){var g=i[h];g.parent.insertBefore(j.clone(true),g);g.cl asses.add('hide');}} TB( h){var g=q.query('#${h}');g.classes.remove('show');g.cl asses.add('hide');g.previousElementSibling.classes.remove('hide');g.previousElem entSibling.classes.add('show');g.parent.query('button').text='apply ${h} filter' ;} UB( i, h){var g=q.query('#${i}');g.width=h.width;g.height=h.height;g.getConte xt('2d') as q.CanvasRenderingContext2D..putImageData(h,0,0);g.previousElementSib ling.classes.remove('show');g.previousElementSibling.classes.add('hide');g.class es.remove('hide');g.classes.add('show');g.parent.query('button').text='remove ${ i} filter';}typedef VB(); AB( g, h){if(q.query('#${g}').previousElementSibling. classes.contains('hide')){TB(g);}else{UB(g,h());}}
OLDNEW
« no previous file with comments | « src/site/samples/imagefilters/example/imagefilters.css ('k') | src/site/samples/imagefilters/example/imagefilters.dart.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698