diff --git a/README.md b/README.md index cfaf052..a5ca8d0 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ php -r 'echo "data:image/jpg;base64," . base64_encode(file_get_contents("'$f'")) * Movie uploading * Optimizations for mobile devices -* An upload queue to not make the http request timeout when doing uploads of many images at once +* Fix the "uploading image" text on the blurred canvas to be exactly centered * Themes / more design options * Categories * Better user interface [?] diff --git a/functions.js b/functions.js index 53406ca..3d07373 100644 --- a/functions.js +++ b/functions.js @@ -469,7 +469,6 @@ function update_progress() } } } - console.log("average = "+average+" queue = "+queue); average /= uploads.queued; if(parseInt(prog.style.width) != average) { diff --git a/functions.min.js b/functions.min.js index b1c4140..ab1fcc5 100644 --- a/functions.min.js +++ b/functions.min.js @@ -1,3 +1,3 @@ (function(){if(!Event.prototype.preventDefault){Event.prototype.preventDefault=function(){this.returnValue=false}}if(!Event.prototype.stopPropagation){Event.prototype.stopPropagation=function(){this.cancelBubble=true}}if(!Element.prototype.addEventListener){var c=[];var b=function(f,h){var d=this;var k=function(l){l.target=l.srcElement;l.currentTarget=d;if(h.handleEvent){h.handleEvent(l)}else{h.call(d,l)}};if(f=="DOMContentLoaded"){var g=function(l){if(document.readyState=="complete"){k(l)}};document.attachEvent("onreadystatechange",g);c.push({object:this,type:f,listener:h,wrapper:g});if(document.readyState=="complete"){var j=new Event();j.srcElement=window;g(j)}}else{this.attachEvent("on"+f,k);c.push({object:this,type:f,listener:h,wrapper:k})}};var a=function(f,g){var d=0;while(dc){b.height*=c/b.width;b.width=c}var j=CE("canvas"),h=j.getContext("2d");h.clearRect(0,0,j.width,j.height);j.width=b.width;j.height=b.height;h.drawImage(b,0,0,b.width,b.height);stackBlurCanvasRGBA(j,0,0,b.width,b.height,10);h.font=(b.height/100)*12+"px Ubuntu";h.fillInversedText("Uploading image...",(b.width/100)*15,(b.height/100)*50);var g=j.toDataURL(),k=new Image();j.remove();b.remove();k.src=g;k.classList.add("image");k.style.maxWidth="19%";k.style.minWidth="200px";k.style.cursor="progress";grid.appendChild(k);if(typeof window.scrollTo=="function"){window.scrollTo(0,$(k).offset().top)}uploads[d]={binary:f,fname:e,date:a,uploaded:0,uploading:false,thumbnail:k,id:d};uploads.queued++})}function startWorker(){if(typeof(Worker)!=="undefined"&&typeof(w)=="undefined"&&preload){w=new Worker("preload.min.js");w.onmessage=function(c){var d=basename(c.data[1]),a=c.data[0];var b=(window.URL||window.webkitURL).createObjectURL(a);imgs[d]=b;mdata[d]=json_decode(c.data[2]);console.info("WebWorker has successfully downloaded "+d+" to "+b)};w.postMessage(imgs);console.info("Preload WebWorker started")}}function lhash(){requestAnimationFrame(lhash);var g=location.hash;if(g[1]=="!"){if(g.length<=2){console.warn("No arguments provided but #!. Stopping.")}else{argr=substr(g,2);args=explode(",",argr);for(var d=0;d2){console.warn("Multiple values specified, using first one")}if(c=="ts"){if(f!=""){thumbsize=f}}if(c=="rs"){if(f!=""){realsize=f}}if(c=="image"){if(f!=""&&f!=undefined){var e=(container.style.display=="none");if(e||$.data(img,"original")!=f){var b=findthumb(f);if(b!=undefined&&($.data(img,"original")!=$.data(b,"original")||e)){openpic(b)}}}}if(c=="info"){if(f=="true"){infolay.classList.remove("closed")}else{if(f=="false"){infolay.classList.add("closed")}}}if(c=="preload"){if(f=="false"||f==false){preload=false}if(f=="true"||f==true){preload=true}}if(c=="overview"){if(f=="true"||f==true){if(container.style.display!="none"){container.click()}}}}}}}function winwidth(){var b=window,h=document,f=h.documentElement,c=h.getElementsByTagName("body")[0],a=b.innerWidth||f.clientWidth||c.clientWidth;return a}CanvasRenderingContext2D.prototype.fillInversedText=function(e,l,h){var f=this.measureText(e).width;var a=parseInt(this.font,"10");a=(a===0)?16:a;var j=document.createElement("canvas");j.width=f;j.height=a;var n=j.getContext("2d");n.font=this.font;n.textBaseline="top";n.fillText(e,0,0);var k=this.getImageData(l,h,f,a);var d=n.getImageData(0,0,f,a);var m=k.data;var b=d.data;var g=b.length;for(var c=0;c0){m[c]=(255-m[c]);m[c+1]=(255-m[c+1]);m[c+2]=(255-m[c+2])}}this.putImageData(k,l,h)};function kinput(b){var a=b.keyCode||b.which;if(a==105){infooverlay()}if(a==102){fs()}if(a==27){b.preventDefault();container.click()}if(a==39||a==110){next()}if(a==37||a==112){prev()}if(a==8||a==46){b.preventDefault();del()}}function addimg(a){var b=CE("img");if(thumbsize!=0){b.src="download.php/resize/"+(parseInt(thumbsize)+(parseInt(thumbsize)/10))+"/"+a;b.style.width=thumbsize+"px"}else{b.src="thumbs.dir/"+a+".jpg";b.style.width="19%";if(mobile){b.style.width="92%"}b.style.minWidth="200px"}$.data(b,"original",a);b.classList.add("image");if(meta[a]!=undefined){$.data(b,"by",meta[a].by);$.data(b,"description",meta[a].description)}b.addEventListener("click",openpic);grid.appendChild(b)}function openpic(h){if(this.tagName=="IMG"){h=this}if(h==undefined){console.warn("srcthumb is undefined");return}var e=$.data(h,"original"),a=false,r=imgs[e];if(substr(r,0,4)=="blob"){console.info("Reading image "+e+" from "+r);img.src=r;a=true}else{if(realsize==0){img.src=e}else{if(realsize=="dyn"){img.src="download.php/resize/"+(winwidth()/100)*95+"/"+e}else{img.src="download.php/resize/"+realsize+"/"+e}}}$.data(img,"original",e);location.hash="#!image="+basename(e);container.style.display="";var t=$(h).data();if("by" in t){by=t.by}else{by=meta.all!=undefined?meta.all:"Unknown"}if("description" in t){desc=t.description}else{desc="Unbenannt"}infobut.style.display="";var x=mdata[e]!=undefined?mdata[e]:json_decode(file_get_contents("download.php/exif/"+e)),g=desc+", hochgeladen von "+by,p=a?'
In Originalgröße downloaden':'
In Originalgröße downloaden';if($.data(h,"description")=="undefined"){g="Hochgeladen von "+$.data(h,"by")}if(x!=false&&x!=null){var o=x.width,k=x.height,b=x.make,c=x.model,n=x.GPS,u=x.date,s=x.ISO,j=x.aperture,v=x.exposure,f=x.filesize,m=x.flash,l=x.software;if(u!=false){g+=", fotografiert am "+u}if(u!=false&&b!=false&&c!=false){var q=b+" "+c;if(b==c){q=c}if(c.indexOf(b)!=-1){q=c}g+=", mit einer / einem "+q}else{if(b!=false&&c!=false){var q=b+" "+c;if(b==c){q=c}if(c.indexOf(b)!=-1){q=c}g+=", fotografiert mit einer / einem "+q}}if(s!=false){g+=", ISO: "+s}if(j!=false){g+=", Blende: "+j}if(v!=false){g+=", Belichtungszeit: "+v}if(m!=false){g+=", Blitz aktiviert"}if(f!=false){g+=", Dateigrösse: "+f}if(o!=false&&k!=false){g+=", Abmessungen: "+o+"x"+k}if(l!=false&&l!=null){g+=", software: "+l}g+=p;if(n!=false){g+=' Ort in Karten öffnen'}if(features.deleting){g+="    "}}infolay.innerHTML=g}function infooverlay(){infolay.classList.toggle("closed")}function findthumb(b){var a=document.getElementsByClassName("image");for(i=0;i>d;if(A!=0){A=255/A;h[v]=((f*B)>>d)*A;h[v+1]=((g*B)>>d)*A;h[v+2]=((E*B)>>d)*A}else{h[v]=h[v+1]=h[v+2]=0}f-=r;g-=G;E-=C;T-=b;r-=W.r;G-=W.g;C-=W.b;b-=W.a;U=(n+((U=O+Q+1)>d;if(A>0){A=255/A;h[U]=((f*B)>>d)*A;h[U+1]=((g*B)>>d)*A;h[U+2]=((E*B)>>d)*A}else{h[U]=h[U+1]=h[U+2]=0}f-=r;g-=G;E-=C;T-=b;r-=W.r;G-=W.g;C-=W.b;b-=W.a;U=(O+(((U=N+l)c){b.height*=c/b.width;b.width=c}var j=CE("canvas"),h=j.getContext("2d");h.clearRect(0,0,j.width,j.height);j.width=b.width;j.height=b.height;h.drawImage(b,0,0,b.width,b.height);stackBlurCanvasRGBA(j,0,0,b.width,b.height,10);h.font=(b.height/100)*12+"px Ubuntu";h.fillInversedText("Uploading image...",(b.width/100)*15,(b.height/100)*50);var g=j.toDataURL(),k=new Image();j.remove();b.remove();k.src=g;k.classList.add("image");k.style.maxWidth="19%";k.style.minWidth="200px";k.style.cursor="progress";grid.appendChild(k);if(typeof window.scrollTo=="function"){window.scrollTo(0,$(k).offset().top)}uploads[d]={binary:f,fname:e,date:a,uploaded:0,uploading:false,thumbnail:k,id:d};uploads.queued++})}function startWorker(){if(typeof(Worker)!=="undefined"&&typeof(w)=="undefined"&&preload){w=new Worker("preload.min.js");w.onmessage=function(c){var d=basename(c.data[1]),a=c.data[0];var b=(window.URL||window.webkitURL).createObjectURL(a);imgs[d]=b;mdata[d]=json_decode(c.data[2]);console.info("WebWorker has successfully downloaded "+d+" to "+b)};w.postMessage(imgs);console.info("Preload WebWorker started")}}function lhash(){requestAnimationFrame(lhash);var g=location.hash;if(g[1]=="!"){if(g.length<=2){console.warn("No arguments provided but #!. Stopping.")}else{argr=substr(g,2);args=explode(",",argr);for(var d=0;d2){console.warn("Multiple values specified, using first one")}if(c=="ts"){if(f!=""){thumbsize=f}}if(c=="rs"){if(f!=""){realsize=f}}if(c=="image"){if(f!=""&&f!=undefined){var e=(container.style.display=="none");if(e||$.data(img,"original")!=f){var b=findthumb(f);if(b!=undefined&&($.data(img,"original")!=$.data(b,"original")||e)){openpic(b)}}}}if(c=="info"){if(f=="true"){infolay.classList.remove("closed")}else{if(f=="false"){infolay.classList.add("closed")}}}if(c=="preload"){if(f=="false"||f==false){preload=false}if(f=="true"||f==true){preload=true}}if(c=="overview"){if(f=="true"||f==true){if(container.style.display!="none"){container.click()}}}}}}}function winwidth(){var b=window,h=document,f=h.documentElement,c=h.getElementsByTagName("body")[0],a=b.innerWidth||f.clientWidth||c.clientWidth;return a}CanvasRenderingContext2D.prototype.fillInversedText=function(e,l,h){var f=this.measureText(e).width;var a=parseInt(this.font,"10");a=(a===0)?16:a;var j=document.createElement("canvas");j.width=f;j.height=a;var n=j.getContext("2d");n.font=this.font;n.textBaseline="top";n.fillText(e,0,0);var k=this.getImageData(l,h,f,a);var d=n.getImageData(0,0,f,a);var m=k.data;var b=d.data;var g=b.length;for(var c=0;c0){m[c]=(255-m[c]);m[c+1]=(255-m[c+1]);m[c+2]=(255-m[c+2])}}this.putImageData(k,l,h)};function kinput(b){var a=b.keyCode||b.which;if(a==105){infooverlay()}if(a==102){fs()}if(a==27){b.preventDefault();container.click()}if(a==39||a==110){next()}if(a==37||a==112){prev()}if(a==8||a==46){b.preventDefault();del()}}function addimg(a){var b=CE("img");if(thumbsize!=0){b.src="download.php/resize/"+(parseInt(thumbsize)+(parseInt(thumbsize)/10))+"/"+a;b.style.width=thumbsize+"px"}else{b.src="thumbs.dir/"+a+".jpg";b.style.width="19%";if(mobile){b.style.width="92%"}b.style.minWidth="200px"}$.data(b,"original",a);b.classList.add("image");if(meta[a]!=undefined){$.data(b,"by",meta[a].by);$.data(b,"description",meta[a].description)}b.addEventListener("click",openpic);grid.appendChild(b)}function openpic(h){if(this.tagName=="IMG"){h=this}if(h==undefined){console.warn("srcthumb is undefined");return}var e=$.data(h,"original"),a=false,r=imgs[e];if(substr(r,0,4)=="blob"){console.info("Reading image "+e+" from "+r);img.src=r;a=true}else{if(realsize==0){img.src=e}else{if(realsize=="dyn"){img.src="download.php/resize/"+(winwidth()/100)*95+"/"+e}else{img.src="download.php/resize/"+realsize+"/"+e}}}$.data(img,"original",e);location.hash="#!image="+basename(e);container.style.display="";var t=$(h).data();if("by" in t){by=t.by}else{by=meta.all!=undefined?meta.all:"Unknown"}if("description" in t){desc=t.description}else{desc="Unbenannt"}infobut.style.display="";var x=mdata[e]!=undefined?mdata[e]:json_decode(file_get_contents("download.php/exif/"+e)),g=desc+", hochgeladen von "+by,p=a?'
In Originalgröße downloaden':'
In Originalgröße downloaden';if($.data(h,"description")=="undefined"){g="Hochgeladen von "+$.data(h,"by")}if(x!=false&&x!=null){var o=x.width,k=x.height,b=x.make,c=x.model,n=x.GPS,u=x.date,s=x.ISO,j=x.aperture,v=x.exposure,f=x.filesize,m=x.flash,l=x.software;if(u!=false){g+=", fotografiert am "+u}if(u!=false&&b!=false&&c!=false){var q=b+" "+c;if(b==c){q=c}if(c.indexOf(b)!=-1){q=c}g+=", mit einer / einem "+q}else{if(b!=false&&c!=false){var q=b+" "+c;if(b==c){q=c}if(c.indexOf(b)!=-1){q=c}g+=", fotografiert mit einer / einem "+q}}if(s!=false){g+=", ISO: "+s}if(j!=false){g+=", Blende: "+j}if(v!=false){g+=", Belichtungszeit: "+v}if(m!=false){g+=", Blitz aktiviert"}if(f!=false){g+=", Dateigrösse: "+f}if(o!=false&&k!=false){g+=", Abmessungen: "+o+"x"+k}if(l!=false&&l!=null){g+=", software: "+l}g+=p;if(n!=false){g+=' Ort in Karten öffnen'}if(features.deleting){g+="    "}}infolay.innerHTML=g}function infooverlay(){infolay.classList.toggle("closed")}function findthumb(b){var a=document.getElementsByClassName("image");for(i=0;i>d;if(A!=0){A=255/A;h[v]=((f*B)>>d)*A;h[v+1]=((g*B)>>d)*A;h[v+2]=((E*B)>>d)*A}else{h[v]=h[v+1]=h[v+2]=0}f-=r;g-=G;E-=C;T-=b;r-=W.r;G-=W.g;C-=W.b;b-=W.a;U=(n+((U=O+Q+1)>d;if(A>0){A=255/A;h[U]=((f*B)>>d)*A;h[U+1]=((g*B)>>d)*A;h[U+2]=((E*B)>>d)*A}else{h[U]=h[U+1]=h[U+2]=0}f-=r;g-=G;E-=C;T-=b;r-=W.r;G-=W.g;C-=W.b;b-=W.a;U=(O+(((U=N+l)