!function(){var t=function(){function t(t,i,e){this.maxWidth=t||1/0,this.maxHeight=i||1/0,"object"==typeof t?(this.options=t,this.maxHeight=1/0):this.options="object"==typeof i?i:e||{},this.options={characters:this.options.characters&&this.options.characters.length>0?this.options.characters:"01",background:this.options.background||"#00000000",ordered:this.options.ordered||!1,color:this.options.color||0},this.canvas=document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.font=function(){var t=document.createElement("pre");t.style.position="absolute",t.textContent=" ",document.body.appendChild(t);var{width:i,height:e}=t.getBoundingClientRect();return document.body.removeChild(t),{ratio:e/i,width:i,height:e}}()}function i(t,i,e){return.21*t+.72*i+.07*e}function e(t,i,e){if(!t||isNaN(t)){var n=document.createElement("div");n.style.position="absolute",n.style[i]=t,document.body.appendChild(n);var{width:o,height:h}=n.getBoundingClientRect();return document.body.removeChild(n),{width:Math.floor(o/e.width)||1/0,height:Math.floor(h/e.height)||1/0}}return{width:t,height:t}}return t.COLORED=0,t.GRAYSCALE=1,t.MONOCHROME=2,t.HTML=0,t.CANVAS=1,t.CONSOLE=2,t.prototype.getPixels=function(t){return new Promise(function(i,n){var o=new Image;o.onload=function(){var[t,n]=function(t,i,n,o,h){n=e(n,"width",h).width,o=e(o,"height",h).height;var r=Math.floor(h.ratio*t),s=i;r>n&&(s=Math.ceil(s*n/r),r=n);s>o&&(r=Math.ceil(r*o/s),s=o);return[r,s]}(o.width,o.height,this.maxWidth,this.maxHeight,this.font);this.canvas.width=t,this.canvas.height=n,this.ctx.fillStyle=this.options.background,this.ctx.fillRect(0,0,t,n),this.ctx.drawImage(o,0,0,t,n);for(var h=this.ctx.getImageData(0,0,t,n),r=[],s=0;s127?255:0,u=u>.5?1:0),c=d=l=s),a=0==u?" ":this.options.ordered?this.options.characters[r%this.options.characters.length]:this.options.characters[Math.floor(Math.random()*this.options.characters.length)],e==t.HTML?(" "==a?o.push(a):o.push(''+a+""),(r+1)%n.width==0&&o.push("\n")):e==t.CANVAS?" "!=a&&(this.ctx.fillStyle="rgba("+c+", "+d+", "+l+", "+u+")",this.ctx.fillText(a,(r+1)%n.width*this.font.width,Math.ceil(r/n.width)*this.font.height)):(" "==a?h+=" ":(h+="%c"+a,o.push("color: rgba("+c+", "+d+", "+l+", "+u+")")),(r+1)%n.width==0&&(h+="\n"))}return e==t.CONSOLE&&o.unshift("\n"+h),o}.bind(this))},t.prototype.write=function(t,i,e){return this.createCharacters(0,t).then(function(t){e||(i.innerHTML="");var n=document.createElement("pre");return n.innerHTML=t.join(""),i.appendChild(n)}).catch(function(t){console.log(t)})},t.prototype.draw=function(t,i,e){return this.createCharacters(1,t).then(function(t){return e||(i.innerHTML=""),i.appendChild(this.canvas)}.bind(this)).catch(function(t){console.log(t)})},t.prototype.log=function(t){return this.createCharacters(2,t).then(function(t){console.log.apply(this,t)}).catch(function(t){console.log(t)})},t}();"undefined"!=typeof module&&void 0!==module.exports?module.exports=t:"function"==typeof define&&define.amd?define([],function(){return t}):window.Textifier=t}();