| 1 |
- function JPEGEncoder(aW){function ap(v){var t,s,r,q,h,g,f,e,d,u=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99];for(t=0;64>t;t++){s=aV((u[t]*v+50)/100),1>s?s=1:s>255&&(s=255),aU[az[t]]=s}for(r=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],q=0;64>q;q++){h=aV((r[q]*v+50)/100),1>h?h=1:h>255&&(h=255),aT[az[q]]=h}for(g=[1,1.387039845,1.306562965,1.175875602,1,0.785694958,0.5411961,0.275899379],f=0,e=0;8>e;e++){for(d=0;8>d;d++){aS[f]=1/(8*aU[az[f]]*g[e]*g[d]),aR[f]=1/(8*aT[az[f]]*g[e]*g[d]),f++}}}function ao(i,h){var k,j,n=0,m=0,l=new Array;for(k=1;16>=k;k++){for(j=1;j<=i[k];j++){l[h[m]]=[],l[h[m]][0]=n,l[h[m]][1]=k,m++,n++}n*=2}return l}function an(){aQ=ao(ay,ax),aP=ao(au,at),aO=ao(aw,av),aN=ao(ar,aq)}function am(){var j,i,h,g=1,f=2;for(j=1;15>=j;j++){for(i=g;f>i;i++){aL[32767+i]=j,aM[32767+i]=[],aM[32767+i][1]=j,aM[32767+i][0]=i}for(h=-(f-1);-g>=h;h++){aL[32767+h]=j,aM[32767+h]=[],aM[32767+h][1]=j,aM[32767+h][0]=f-1+h}g<<=1,f<<=1}}function al(){for(var d=0;256>d;d++){aB[d]=19595*d,aB[d+256>>0]=38470*d,aB[d+512>>0]=7471*d+32768,aB[d+768>>0]=-11059*d,aB[d+1024>>0]=-21709*d,aB[d+1280>>0]=32768*d+8421375,aB[d+1536>>0]=-27439*d,aB[d+1792>>0]=-5329*d}}function ak(e){for(var d=e[0],f=e[1]-1;f>=0;){d&1<<f&&(aH|=1<<aG),f--,aG--,0>aG&&(255==aH?(aj(255),aj(0)):aj(aH),aG=7,aH=0)}}function aj(d){aI.push(aC[d])}function ai(d){aj(255&d>>8),aj(255&d)}function ah(bL,bK){var bJ,bI,bH,bG,bF,bE,bD,bC,bA,bx,bw,bv,bu,bt,bs,br,bq,bp,bo,bn,bl,bk,bj,bi,bh,bg,bf,be,bd,bc,bb,ba,a9,a8,a7,a6,a5,a4,a3,a2,a1,a0,aZ,aY,aX,o,bm,bM,bB=0;var bz=8,by=64;for(bA=0;bz>bA;++bA){bJ=bL[bB],bI=bL[bB+1],bH=bL[bB+2],bG=bL[bB+3],bF=bL[bB+4],bE=bL[bB+5],bD=bL[bB+6],bC=bL[bB+7],bx=bJ+bC,bw=bJ-bC,bv=bI+bD,bu=bI-bD,bt=bH+bE,bs=bH-bE,br=bG+bF,bq=bG-bF,bp=bx+br,bo=bx-br,bn=bv+bt,bl=bv-bt,bL[bB]=bp+bn,bL[bB+4]=bp-bn,bk=0.707106781*(bl+bo),bL[bB+2]=bo+bk,bL[bB+6]=bo-bk,bp=bq+bs,bn=bs+bu,bl=bu+bw,bj=0.382683433*(bp-bl),bi=0.5411961*bp+bj,bh=1.306562965*bl+bj,bg=0.707106781*bn,bf=bw+bg,be=bw-bg,bL[bB+5]=be+bi,bL[bB+3]=be-bi,bL[bB+1]=bf+bh,bL[bB+7]=bf-bh,bB+=8}for(bB=0,bA=0;bz>bA;++bA){bJ=bL[bB],bI=bL[bB+8],bH=bL[bB+16],bG=bL[bB+24],bF=bL[bB+32],bE=bL[bB+40],bD=bL[bB+48],bC=bL[bB+56],bd=bJ+bC,bc=bJ-bC,bb=bI+bD,ba=bI-bD,a9=bH+bE,a8=bH-bE,a7=bG+bF,a6=bG-bF,a5=bd+a7,a4=bd-a7,a3=bb+a9,a2=bb-a9,bL[bB]=a5+a3,bL[bB+32]=a5-a3,a1=0.707106781*(a2+a4),bL[bB+16]=a4+a1,bL[bB+48]=a4-a1,a5=a6+a8,a3=a8+ba,a2=ba+bc,a0=0.382683433*(a5-a2),aZ=0.5411961*a5+a0,aY=1.306562965*a2+a0,aX=0.707106781*a3,o=bc+aX,bm=bc-aX,bL[bB+40]=bm+aZ,bL[bB+24]=bm-aZ,bL[bB+8]=o+aY,bL[bB+56]=o-aY,bB++}for(bA=0;by>bA;++bA){bM=bL[bA]*bK[bA],aK[bA]=bM>0?0|bM+0.5:0|bM-0.5}return aK}function ag(){ai(65504),ai(16),aj(74),aj(70),aj(73),aj(70),aj(0),aj(1),aj(1),aj(0),ai(1),ai(1),aj(0),aj(0)}function af(e,d){ai(65472),ai(17),aj(8),ai(d),ai(e),aj(3),aj(1),aj(17),aj(0),aj(2),aj(17),aj(1),aj(3),aj(17),aj(1)}function ae(){var e,d;for(ai(65499),ai(132),aj(0),e=0;64>e;e++){aj(aU[e])}for(aj(1),d=0;64>d;d++){aj(aT[d])}}function ad(){var j,i,p,o,n,m,l,k;for(ai(65476),ai(418),aj(0),j=0;16>j;j++){aj(ay[j+1])}for(i=0;11>=i;i++){aj(ax[i])}for(aj(16),p=0;16>p;p++){aj(aw[p+1])}for(o=0;161>=o;o++){aj(av[o])}for(aj(1),n=0;16>n;n++){aj(au[n+1])}for(m=0;11>=m;m++){aj(at[m])}for(aj(17),l=0;16>l;l++){aj(ar[l+1])}for(k=0;161>=k;k++){aj(aq[k])}}function ac(){ai(65498),ai(12),aj(3),aj(1),aj(0),aj(2),aj(17),aj(3),aj(17),aj(0),aj(63),aj(0)}function ab(N,M,L,K,J){var G,C,B,A,z,y,x,p,n,m,I=J[0],H=J[240];var F=16,E=63,D=64;for(C=ah(N,M),B=0;D>B;++B){aJ[az[B]]=C[B]}for(A=aJ[0]-L,L=aJ[0],0==A?ak(K[0]):(G=32767+A,ak(K[aL[G]]),ak(aM[G])),z=63;z>0&&0==aJ[z];z--){}if(0==z){return ak(I),L}for(y=1;z>=y;){for(p=y;0==aJ[y]&&z>=y;++y){}if(n=y-p,n>=F){for(x=n>>4,m=1;x>=m;++m){ak(H)}n=15&n}G=32767+aJ[y],ak(J[(n<<4)+aL[G]]),ak(aM[G]),y++}return z!=E&&ak(I),L}function aa(){var d,e=String.fromCharCode;for(d=0;256>d;d++){aC[d]=e(d)}}function c(e){if(0>=e&&(e=1),e>100&&(e=100),aA!=e){var d=0;d=50>e?Math.floor(5000/e):Math.floor(200-2*e),ap(d),aA=e,console.log("Quality set to: "+e+"%")}}function b(){var d,a=(new Date).getTime();aW||(aW=50),aa(),an(),am(),al(),c(aW),d=(new Date).getTime()-a,console.log("Initialization "+d+"ms")}var aV,aU,aT,aS,aR,aQ,aP,aO,aN,aM,aL,aK,aJ,aI,aH,aG,aF,aE,aD,aC,aB,aA,az,ay,ax,aw,av,au,at,ar,aq;Math.round,aV=Math.floor,aU=new Array(64),aT=new Array(64),aS=new Array(64),aR=new Array(64),aM=new Array(65535),aL=new Array(65535),aK=new Array(64),aJ=new Array(64),aI=[],aH=0,aG=7,aF=new Array(64),aE=new Array(64),aD=new Array(64),aC=new Array(256),aB=new Array(2048),az=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],ay=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],ax=[0,1,2,3,4,5,6,7,8,9,10,11],aw=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],av=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],au=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],at=[0,1,2,3,4,5,6,7,8,9,10,11],ar=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],aq=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250],this.encode=function(T,S){var Q,P,O,N,M,L,x,j,h,w,v,u,t,s,r,q,l,k,i,g,R=(new Date).getTime();for(S&&c(S),aI=new Array,aH=0,aG=7,ai(65496),ag(),ae(),af(T.width,T.height),ad(),ac(),Q=0,P=0,O=0,aH=0,aG=7,this.encode.displayName="_encode_",N=T.data,M=T.width,L=T.height,x=4*M,h=0;L>h;){for(j=0;x>j;){for(t=x*h+j,s=t,r=-1,q=0,l=0;64>l;l++){q=l>>3,r=4*(7&l),s=t+q*x+r,h+q>=L&&(s-=x*(h+1+q-L)),j+r>=x&&(s-=j+r-x+4),w=N[s++],v=N[s++],u=N[s++],aF[l]=(aB[w]+aB[v+256>>0]+aB[u+512>>0]>>16)-128,aE[l]=(aB[w+768>>0]+aB[v+1024>>0]+aB[u+1280>>0]>>16)-128,aD[l]=(aB[w+1280>>0]+aB[v+1536>>0]+aB[u+1792>>0]>>16)-128}Q=ab(aF,aS,Q,aQ,aO),P=ab(aE,aR,P,aP,aN),O=ab(aD,aR,O,aP,aN),j+=32}h+=8}return aG>=0&&(k=[],k[1]=aG+1,k[0]=(1<<aG+1)-1,ak(k)),ai(65497),i="data:image/jpeg;base64,"+btoa(aI.join("")),aI=[],g=(new Date).getTime()-R,console.log("Encoding time: "+g+"ms"),i},b()}function getImageDataFromImage(f){var g,e="string"==typeof f?document.getElementById(f):f,h=document.createElement("canvas");return h.width=e.width,h.height=e.height,g=h.getContext("2d"),g.drawImage(e,0,0),g.getImageData(0,0,h.width,h.height)}!function(){function h(m){var o,n,f=m.naturalWidth,p=m.naturalHeight;return f*p>1048576?(o=document.createElement("canvas"),o.width=o.height=1,n=o.getContext("2d"),n.drawImage(m,-f+1,0),0===n.getImageData(0,0,1,1).data[3]):!1}function g(w,v,u){var s,r,q,p,o,n,m,t=document.createElement("canvas");for(t.width=1,t.height=u,s=t.getContext("2d"),s.drawImage(w,0,0),r=s.getImageData(0,0,1,u).data,q=0,p=u,o=u;o>q;){n=r[4*(o-1)+3],0===n?p=o:q=o,o=p+q>>1}return m=o/u,0===m?1:m}function l(f,d,n){var m=document.createElement("canvas");return k(f,m,d,n),m.toDataURL("image/jpeg",d.quality||0.8)}function k(N,M,L,K){var E,D,C,B,A,z,y,x,e,b,a,J=N.naturalWidth,I=N.naturalHeight,H=L.width,G=L.height,F=M.getContext("2d");for(F.save(),j(M,F,H,G,L.orientation),E=h(N),E&&(J/=2,I/=2),D=1024,C=document.createElement("canvas"),C.width=C.height=D,B=C.getContext("2d"),A=K?g(N,J,I):1,z=Math.ceil(D*H/J),y=Math.ceil(D*G/I/A),x=0,e=0;I>x;){for(b=0,a=0;J>b;){B.clearRect(0,0,D,D),B.drawImage(N,-b,-x),F.drawImage(C,0,0,D,D,a,e,z,y),b+=D,a+=z}x+=D,e+=y}F.restore(),C=B=null}function j(m,f,p,o,n){switch(n){case 5:case 6:case 7:case 8:m.width=o,m.height=p;break;default:m.width=p,m.height=o}switch(n){case 2:f.translate(p,0),f.scale(-1,1);break;case 3:f.translate(p,o),f.rotate(Math.PI);break;case 4:f.translate(0,o),f.scale(1,-1);break;case 5:f.rotate(0.5*Math.PI),f.scale(1,-1);break;case 6:f.rotate(0.5*Math.PI),f.translate(0,-o);break;case 7:f.rotate(0.5*Math.PI),f.translate(p,-o),f.scale(-1,1);break;case 8:f.rotate(-0.5*Math.PI),f.translate(-p,0)}}function i(f){var e,n,m;if(window.Blob&&f instanceof Blob){if(e=new Image,n=window.URL&&window.URL.createObjectURL?window.URL:window.webkitURL&&window.webkitURL.createObjectURL?window.webkitURL:null,!n){throw Error("No createObjectURL function found to create blob url")}e.src=n.createObjectURL(f),this.blob=f,f=e}f.naturalWidth||f.naturalHeight||(m=this,f.onload=function(){var d,p,o=m.imageLoadListeners;if(o){for(m.imageLoadListeners=null,d=0,p=o.length;p>d;d++){o[d]()}}},this.imageLoadListeners=[]),this.srcImage=f}i.prototype.render=function(B,A,z){var y,x,w,v,u,t,s,r,q,d,c;if(this.imageLoadListeners){return y=this,this.imageLoadListeners.push(function(){y.render(B,A,z)}),void 0}A=A||{},x=this.srcImage.naturalWidth,w=this.srcImage.naturalHeight,v=A.width,u=A.height,t=A.maxWidth,s=A.maxHeight,r=!this.blob||"image/jpeg"===this.blob.type,v&&!u?u=w*v/x<<0:u&&!v?v=x*u/w<<0:(v=x,u=w),t&&v>t&&(v=t,u=w*v/x<<0),s&&u>s&&(u=s,v=x*u/w<<0),q={width:v,height:u};for(d in A){q[d]=A[d]}c=B.tagName.toLowerCase(),"img"===c?B.src=l(this.srcImage,q,r):"canvas"===c&&k(this.srcImage,B,q,r),"function"==typeof this.onrender&&this.onrender(B),z&&z()},"function"==typeof define&&define.amd?define([],function(){return i}):this.MegaPixImage=i}();(function(a){a.fn.localResizeIMG=function(c){a("#"+a(this).attr("id")).live({change:function(h){if(this.files){var g=this.files[0],i=(g.name||"").toLowerCase();if((a.inArray(g.type,["image/jpg","image/jpeg","image/bmp","image/png"])>=0||i.endWith(".jpg")||i.endWith(".jpeg")||i.endWith(".png")||i.endWith(".bmp"))&&c.cprs&&(window.FileReader&&window.File)&&(g.size>300*1024&&g.size<5*1024*1024)){var d=d||webkitURL;var f=d.createObjectURL(g);if(a.isFunction(c.before)){c.before(this,f,g)}b(f,g);this.value=""}else{if(a.isFunction(c.unsupport)){c.unsupport()}}}else{if(a.isFunction(c.unsupport)){c.unsupport()}}}});function b(e){var d=new Image();d.src=e;d.onload=function(){var j=this;var n=j.width,i=j.height,g=n/i;n=parseInt(c.cprs)*n/100;i=n/g;var f=document.createElement("canvas");var o=f.getContext("2d");a(f).attr({width:n,height:i});o.drawImage(j,0,0,n,i);var k=f.toDataURL("image/jpeg",c.quality||0.8);if(navigator.userAgent.match(/iphone/i)){var m=new MegaPixImage(d);m.render(f,{maxWidth:n,maxHeight:i,quality:c.quality||0.8});k=f.toDataURL("image/jpeg",c.quality||0.8)}if(navigator.userAgent.match(/Android/i)){var l=new JPEGEncoder();k=l.encode(o.getImageData(0,0,n,i),c.quality*100||80)}var p={base64:k,clearBase64:k.substr(k.indexOf(",")+1)};c.success(p)}}}})(jQuery);jQuery.extend({handleError:function(b,d,a,c){if(b.error){b.error.call(b.context||b,d,a,c)}if(b.global){(b.context?jQuery(b.context):jQuery.event).trigger("ajaxError",[d,b,c])}},createUploadIframe:function(d,b){var a="jUploadFrame"+d;var c='<iframe id="'+a+'" name="'+a+'" style="position:absolute; top:-9999px; left:-9999px"';if(window.ActiveXObject){if(typeof b=="boolean"){c+=' src="javascript:false"'}else{if(typeof b=="string"){c+=' src="'+b+'"'}}}c+=" />";jQuery(c).appendTo(document.body);return jQuery("#"+a).get(0)},createUploadForm:function(a,j,d){var h="jUploadForm"+a;var c="jUploadFile"+a;var b=jQuery('<form action="" method="POST" name="'+h+'" id="'+h+'" enctype="multipart/form-data"></form>');if(d){for(var e in d){jQuery('<input type="hidden" name="'+e+'" value="'+d[e]+'" />').appendTo(b)}}var f=jQuery("#"+j);var g=jQuery(f).clone();jQuery(f).attr("id",c);jQuery(f).before(g);jQuery(f).appendTo(b);jQuery(b).css("position","absolute");jQuery(b).css("top","-1200px");jQuery(b).css("left","-1200px");jQuery(b).appendTo("body");return b},ajaxFileUpload:function(k){k=jQuery.extend({},jQuery.ajaxSettings,k);var a=new Date().getTime();var b=jQuery.createUploadForm(a,k.fileElementId,(typeof(k.data)=="undefined"?false:k.data));var i=jQuery.createUploadIframe(a,k.secureuri);var h="jUploadFrame"+a;var j="jUploadForm"+a;if(k.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart")}var c=false;var f={};if(k.global){jQuery.event.trigger("ajaxSend",[f,k])}var d=function(l){var p=document.getElementById(h);try{if(p.contentWindow){f.responseText=p.contentWindow.document.body?p.contentWindow.document.body.innerHTML:null;f.responseXML=p.contentWindow.document.XMLDocument?p.contentWindow.document.XMLDocument:p.contentWindow.document}else{if(p.contentDocument){f.responseText=p.contentDocument.document.body?p.contentDocument.document.body.innerHTML:null;f.responseXML=p.contentDocument.document.XMLDocument?p.contentDocument.document.XMLDocument:p.contentDocument.document}}}catch(o){jQuery.handleError(k,f,null,o)}if(f||l=="timeout"){c=true;var m;try{m=l!="timeout"?"success":"error";if(m!="error"){var n=jQuery.uploadHttpData(f,k.dataType);if(k.success){k.success(n,m)}if(k.global){jQuery.event.trigger("ajaxSuccess",[f,k])}}else{jQuery.handleError(k,f,m)}}catch(o){m="error";jQuery.handleError(k,f,m,o)}if(k.global){jQuery.event.trigger("ajaxComplete",[f,k])}if(k.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop")}if(k.complete){k.complete(f,m)}jQuery(p).unbind();setTimeout(function(){try{jQuery(p).remove();jQuery(b).remove()}catch(q){jQuery.handleError(k,f,null,q)}},100);f=null}};if(k.timeout>0){setTimeout(function(){if(!c){d("timeout")}},k.timeout)}try{var b=jQuery("#"+j);jQuery(b).attr("action",k.url);jQuery(b).attr("method","POST");jQuery(b).attr("target",h);if(b.encoding){jQuery(b).attr("encoding","multipart/form-data")}else{jQuery(b).attr("enctype","multipart/form-data")}jQuery(b).submit()}catch(g){jQuery.handleError(k,f,null,g)}jQuery("#"+h).load(d);return{abort:function(){}}},uploadHttpData:function(r,type){var data=!type;data=type=="xml"||data?r.responseXML:r.responseText;if(data.indexOf("<script")>0){data=data.substring(0,data.indexOf("<script"))}if(type=="script"){jQuery.globalEval(data)}if(type=="json"){eval("data = "+data)}if(type=="html"){jQuery("<div>").html(data).evalScripts()}return data}});
|