GitHub地址:https://github.com/qiangzi772...html
若是以爲不錯能夠給個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
碼,在適當的位置進行換行,而後總體轉換便完成。spa
目前項目的瓶頸存在於html2canvas
這個插件,把圖片轉成ASCII碼在瀏覽器中輸出是十分快速的,可是後期將輸出的ASCII碼轉換成圖片時,使用了html2canvas
插件,這個插件在轉換圖片的過程當中十分緩慢,致使最後的輸出緩慢。接下來會把html2canvas
這個插件換成使用別的插件實現,忘廣大網友提供一些轉圖片的插件。
除此以外我還寫有draggable
拖拽庫以及ant-template
模板引擎,若是以爲不錯能夠給個star
。