1. 程式人生 > >html2canvas頁面截圖圖片不顯示

html2canvas頁面截圖圖片不顯示

pan cnblogs 包含 github上 但是 測試文件 文件夾 url hub

前兩天在一個群裏,有人問使用html2canvas屏幕截圖的時候為什麽頁面的圖片不顯示只顯示了文字,我沒有做過屏幕截圖的需求,所以不是很清楚,今天稍稍測試了一下。

在github上將html2canvas源碼下載到本地,examples文件夾裏有三個示例demo,這三個demo都是純文字不包含圖片的,前兩個demo是打開之後直接就生成圖片展示出來了,第三個是一個按鈕觸發生成,這裏使用第三個demo來修改進行測試。

一、這是初始頁面,上面帶有背景顏色的是要截取的部分(id名為‘content’),下方帶有笑臉的是canvas標簽。點擊run按鈕,成功截取顯示在canvas中,沒有任何問題。

技術分享技術分享

二、將截取部分的背景屬性替換成網絡上的一張圖片

#content {                              
background
:url(‘http://www.cnblogs.com/skins/nature/images/top.gif‘); padding: 50px 10px; }

背景可以正常顯示,但是點擊run按鈕之後,canvas中只顯示出了文字,並沒有顯示出背景圖片,並且瀏覽器也無報錯。

技術分享技術分享

三、將截取部分的背景屬性替換成本地的一張圖片

#content {
            padding: 50px 10px;
            background: url(‘../../AI/xt.jpg‘)
; background: url(‘xt.jpg‘); background: url(‘file:///D:/wamp/www/測試文件夾/AI/xt.jpg‘); }

以上css寫了三種情況:1.相對路徑,在不同目錄下;2.相對路徑,在同一級目錄下;3.絕對路徑。

背景圖片可以正常顯示,點擊ruan按鈕之後,背景圖片均可以顯示在canvas中。

技術分享技術分享

四、將截取部分背景圖片的路徑通過本機IP來訪問

#content {
            padding: 50px 10px;
            background: url(‘http://10.0.1.6/測試文件夾/AI/xt.jpg‘)
; }

背景圖片可以正常顯示出來,點擊run之後canvas中只顯示了文字,背景圖片消失。

技術分享技術分享

圖片不能在canvas中顯示出來的原因是因為html2canvas不支持跨域的圖片資源,所以canvas中不會顯示圖片。

html2canvas頁面截圖圖片不顯示