詳解html2canvas截圖不能截取圓角圖片的解決方案

以前我們只能通過其他的截圖工具來截取圖像。現(xiàn)代瀏覽器的功能已經(jīng)越來越強(qiáng),隨著H5的逐漸普及,瀏覽器本身就可以截圖啦。html2canvas就是這樣一款前端插件,它的原理是將Dom節(jié)點在Canvas里邊畫出來。雖然很方便,但有以下限制:
- 不支持iframe
- 不支持跨域圖片
- 不能在瀏覽器插件中使用
- 部分瀏覽器上不支持SVG圖片
- 不支持Flash
- 不支持古代瀏覽器和IE,如果你想確認(rèn)是否支持某個瀏覽器,可以用它訪問 http://deerface.sinaapp.com/ 試試 :)
由于我的使用場景很簡單,記錄一下異常信息,并且異常頁面也是由自己定義的,那么html2canvas 就足夠使用了。
第一次用html2canvas,目的就是想把整個頁面截圖下來生成一張圖片給用戶保存
下面我們先來看看HTML渲染出來的是啥樣子的
HTML渲染出來的圖片可以看到上面的圖片是有圓角效果的,但是當(dāng)我用html2canvas來進(jìn)行轉(zhuǎn)換圖片操作的時候,發(fā)現(xiàn)圖片圓角效果沒失效了。
變成了上面這個樣子。想了很多解決方案,后來決定把后面的圓角做成一張背景圖片,中間圓的部分背景透明,然后通過絕對定位覆蓋到原來的圖片上面,相當(dāng)于是一個遮罩這種效果。
當(dāng)然,遮罩圖片的DOM節(jié)點必須在需要圓角圖片的下面,類似于
<div class="avatar_img fl"><div class="avatar_img fl"> <img src="" id="you" class="avatar_pp fl" /><!--需要圓角的原始圖片--> <img src="/template/images/avatar.png" class="img-responsive" style="position: absolute;"><!--遮罩圖片--> </div>
生成出來就是正常的樣子了
<div class="avatar_img fl"><div class="avatar_img fl"> <img src="" id="you" class="avatar_pp fl" /><!--需要圓角的原始圖片--> <img src="/template/images/avatar.png" class="img-responsive" style="position: absolute;"><!--遮罩圖片--> </div>
<a href="<a ><img</a> src="<a alt="" width="169" height="300" srcset="<a >http://www.teaxia.com/wp-content/uploads/2018/01/2-169x300.jpg</a> 169w, <a >http://www.teaxia.com/wp-content/uploads/2018/01/2.jpg</a> 377w" sizes="(max-width: 169px) 100vw, 169px" /></a>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
HTML5中通過li-canvas輕松實現(xiàn)單圖、多圖、圓角圖繪制,單行文字、多行
這篇文章主要介紹了HTML5中通過li-canvas輕松實現(xiàn)單圖、多圖、圓角圖繪制,單行文字、多行文字等,需要的朋友可以參考下2018-11-30使用HTML5 Canvas繪制圓角矩形及相關(guān)的一些應(yīng)用舉例
這篇文章主要介紹了使用HTML5 Canvas繪制圓角矩形及相關(guān)的一些應(yīng)用舉例,作者舉了2048小游戲和微信對話框兩個實用的例子來作為操作Canvas API的實用練習(xí)推薦,需要的朋友可以2016-03-22- HTML5 Canvas繪制對象中提供的原生功能沒有實現(xiàn)繪制圓角矩形與虛線的功能,通過JavaScript的Object.prototype可以實現(xiàn)對對象CanvasRenderingContext2D添加這兩個函數(shù)功能,2013-08-02
html5 Canvas畫圖教程(10)—把面拆成線條模擬出圓角矩形
上一篇文章我講了畫矩形和圓形的方法,他們都有原生的canvas繪圖函數(shù)可完成。而本文講的圓角矩形則只有通過其他方法模擬出來,我們動用把面拆成線條的能力,很容易就能發(fā)現(xiàn)2013-01-09- 這篇文章主要介紹了canvas繪制圓角頭像的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)2019-01-17