GitHub地址:https://github.com/qiangzi7723/img2Asciihtml
若是以为不错能够给个star或者提出你的建议git
img2Ascii,基于JS的图片转ASCII示意图。github
转码前图片npm
转码后图片canvas
npm install 或者 yarn install
以后经过浏览器
npm run dev
便可打开项目app
如下代码在main.js
中函数
const Img2Ascii=require('./index'); const img=require('./assets/av.png'); new Img2Ascii(img,(nSrc,img)=>{ const nImg = new Image(); nImg.src = nSrc; nImg.style.width = img.width + 'px'; nImg.style.height = img.height + 'px'; nImg.onload = () => { document.body.appendChild(nImg); document.getElementById('tip').style.display='none'; } });
Img2Ascii方法须要传入两个参数,第一个参数是图片路径,第二个参数是图片转换完毕后的回调函数,须要本身在回调函数中注入新生成的图片节点,不然看不到效果。ui
把图片在canvas
中绘制后,利用getImageData
接口获取图片的rgba
,计算rgba
值转换为对应的ASCII
码,在适当的位置进行换行,而后总体转换便完成。插件
目前项目的瓶颈存在于html2canvas
这个插件,把图片转成ASCII码在浏览器中输出是十分快速的,可是后期将输出的ASCII码转换成图片时,使用了html2canvas
插件,这个插件在转换图片的过程当中十分缓慢,致使最后的输出缓慢。接下来会把html2canvas
这个插件换成使用别的插件实现,忘广大网友提供一些转图片的插件。
除此以外我还写有draggable
拖拽库以及ant-template
模板引擎,若是以为不错能够给个star
。