項目要求是:html生成圖片(圖片格式不限),長按圖片能夠保存到本地,主要在移動端 1、初試html2canvas 最初選擇的是html2canvas插件,將html轉為canvas 再通過Canvas2Image,將canvas轉為想要的圖片 問題:只能截取一屏的內容,當出現滾動條時,不在滾動視區 ...
項目要求是:html生成圖片(圖片格式不限),長按圖片能夠保存到本地,主要在移動端
1、初試html2canvas
最初選擇的是html2canvas插件,將html轉為canvas
再通過Canvas2Image,將canvas轉為想要的圖片
問題:只能截取一屏的內容,當出現滾動條時,不在滾動視區的部分不會被生成
2、換用dom-to-image
聽從廣大網友的建議,換用dom-to-image插件
該插件常用的是 toPng、toJpeg、toSvg 這三種方法
本人實測之後:toPng和toJpeg方法只在部分ios端有效,在ios8以上和android上(微信內置)存在相容性問題
toSvg 能夠順利在各種機型上生成圖片,但是無法長按保存,想來是svg格式在移動端的支持性不好
嘗試使用 canvas.todataurl 將svg轉換為png格式,發現在android端依舊存在相容性問題
3、繼續用回html2canvas
想到的解決方案是:將需要生成圖片的長圖按一定比例縮小,在一屏中生成圖片
代碼大致如下:
img.style.transform = "scale(0.4)";
相容性問題真是前端一大煩心事。