整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Html js將網(wǎng)頁轉(zhuǎn)成圖片



          將網(wǎng)頁轉(zhuǎn)換為圖片,您可以使用一些庫和工具來實現(xiàn)。在前端開發(fā)中,常用的庫包括html2canvas和dom-to-image。這些庫允許您將HTML元素轉(zhuǎn)換為圖像。

          下面是使用html2canvas庫將網(wǎng)頁轉(zhuǎn)換為圖像的示例代碼:

          <!DOCTYPE html>  
          <html>  
          <head>  
            <title>Convert Webpage to Image</title>  
            <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.3.2/html2canvas.min.js"></script>  
          </head>  
          <body>  
            <div id="capture">  
              <!-- 在這里放置您想要轉(zhuǎn)換為圖像的HTML內(nèi)容 -->  
              <h1>Hello, World!</h1>  
              <p>This is an example of converting a webpage to an image.</p>  
            </div>  
            
            <button onclick="convertToImage()">Convert to Image</button>  
            
            <script>  
              function convertToImage() {  
                html2canvas(document.getElementById("capture")).then(canvas => {  
                  var img = canvas.toDataURL("image/png");  
                  var link = document.createElement("a");  
                  link.href = img;  
                  link.download = "webpage.png";  
                  link.click();  
                });  
              }  
            </script>  
          </body>  
          </html>

          上述代碼使用html2canvas庫來將id為"capture"的div元素轉(zhuǎn)換為圖像。當用戶點擊"Convert to Image"按鈕時,convertToImage()函數(shù)會被調(diào)用。該函數(shù)使用html2canvas對指定的HTML元素進行截圖,并將結(jié)果轉(zhuǎn)換為一個包含圖像數(shù)據(jù)的URL。然后,創(chuàng)建一個隱藏的鏈接元素,將圖像數(shù)據(jù)URL設(shè)置為鏈接的href屬性,并模擬點擊該鏈接以下載圖像。最后,圖像將以PNG格式下載到用戶的設(shè)備上。

          請注意,html2canvas庫有一些限制和局限性,例如跨域圖像的限制、CSS樣式的復(fù)雜性等。確保在使用這些庫時仔細測試和驗證您的代碼,并查閱相關(guān)文檔以了解更多細節(jié)和選項。

          Java實現(xiàn)根據(jù)svg模版動態(tài)生成圖片

          使用場景

          需要Java語言動態(tài)生成圖片

          用流程圖簡單說明下我這邊工作中使用的場景

          僅供參考

          所以這里就需要生成證書了

          我先給大家看下最終實現(xiàn)的圖片效果

          這里要先說明一下

          • 圖片上的文字都是動態(tài)變化的即不同的訂單對應(yīng)的圖片內(nèi)容都不一樣
          • 圖片上還可以嵌入圖片哦 比如上圖的logo圖片

          下面說下我是如何解決的

          通過PhantomJS來實現(xiàn)

          這種方式是不能實現(xiàn)這個需求的

          這個的原理就是對網(wǎng)頁截圖 但只能對于靜態(tài)頁面截圖 不能根據(jù)不同的參數(shù)值動態(tài)生成圖片

          所以不提倡使用這種方式

          但也介紹下這種使用方式 朋友們根據(jù)自己的實際需求情況有選擇的使用

          通過html代碼實現(xiàn)圖片的效果 放入web容器(比如nginx)中部署

          這是h5代碼

          test文件夾下面的內(nèi)容

          安裝一個docker nginx 將test文件夾加載到nginx容器的/usr/share/nginx/html目錄下面

          docker run --name nginx80  -p 8000:80  -v /tmp/test:/usr/share/nginx/html -d docker.io/nginx
          

          訪問的頁面效果

          訪問該頁面進行截圖

          這張圖片是截圖生成的圖片 但url中的id值并沒有傳給頁面

          在h5代碼中請求后端接口獲取數(shù)據(jù)動態(tài)顯示出來也是不可以的

          所以這種方式使用局限性很窄

          簡單介紹下代碼原理

          大致原理是 通過http請求該url獲取該url的文件流然后解析h5代碼生成圖片

          通過SVG模版動態(tài)生成

          先寫svg模版(其實也是h5代碼)

          讀取svg模版 動態(tài)傳入?yún)?shù)生成圖片

          其實現(xiàn)原理大致為 讀取svg document h5代碼 將動態(tài)參數(shù)map解析到h5代碼中 轉(zhuǎn)換成字節(jié)數(shù)組 生成圖片格式

          Linux環(huán)境圖片中文亂碼

          我本地是mac系統(tǒng)沒有這個問題 在發(fā)布到測試環(huán)境linux系統(tǒng)出現(xiàn)了這個問題

          先看下問題的現(xiàn)象

          看到了沒 生成的圖片中文全是亂碼

          原因是因為linux系統(tǒng)沒有中文字體

          既然linux系統(tǒng)沒有中文字體 那么就安裝它嘛 let's 盤它?。。?/p>

          先看下mac環(huán)境的字體情況

          • 安裝字體管理工具
          brew install fontconfig
          
          • 查看支持中文
          fc-list :lang=zh    (注意‘:’前的空格)
          

          mac環(huán)境默認會安裝很多中文字體

          再看下linux環(huán)境

          • 安裝字體管理工具
          yum -y install fontconfig
          
          • 查看支持中文
          fc-list :lang=zh
          

          果然沒有中文字體

          開始安裝中文字體

          將mac環(huán)境的宋體上傳到linux環(huán)境

          a 先在mac系統(tǒng)中找到字體安裝目錄

          /System/Library/Fonts
          

          b 找到宋體對應(yīng)的文件

          c 將該文件上傳到linux指定的目錄下

          /usr/share/fonts/chinese
          

          d 賦予文件夾操作權(quán)限

          chmod -R 755 /usr/share/fonts/chinese
          

          e 安裝ttmkfdir來搜索目錄中所有的字體信息,并匯總生成fonts.scale文件

          yum -y install ttmkfdir
          
          ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
          
          

          修改字體配置文件

          vi /etc/fonts/fonts.conf
          添加
          <dir>/usr/share/fonts/chinese</dir>
          

          刷新內(nèi)存中的字體緩存

          fc-cache
          

          確認是否安裝成功

          在jdk中安裝該宋體

          a 找到j(luò)dk所在的安裝目錄

          echo $JAVA_HOME 
          

          b 將宋體文件復(fù)制過來

          cp /usr/share/fonts/chinese/STHeiti\ Light.ttc /usr/local/software/jdk1.8.0_141/jre/lib/fonts/fallback
          
          fallback代表存放后備語言的文件夾
          

          重啟java服務(wù)即可

          DEMO代碼

          https://gitee.com/pingfanrenbiji/resource/tree/master/image
          

          注意: 引入的依賴問題

            <!--phantomjs -->
            <dependency>
             <groupId>org.seleniumhq.selenium</groupId>
             <artifactId>selenium-java</artifactId>
             <version>2.53.1</version>
            </dependency>
            <dependency>
             <groupId>com.github.detro</groupId>
             <artifactId>ghostdriver</artifactId>
             <version>2.1.0</version>
            </dependency>
          
            <!--svg-->
            <dependency>
             <groupId>com.github.hui.media</groupId>
             <artifactId>svg-core</artifactId>
             <version>2.5</version>
            </dependency>
          
          

          這些依賴jar包我是上傳到了公司的私服上了

          若是朋友們下拉不下來

          我提供給大家這些底層jar包的實現(xiàn)源碼

          https://gitee.com/pingfanrenbiji/quick-media
          

          自行上傳到自己的私服即可


          主站蜘蛛池模板: 福利国产微拍广场一区视频在线 | 日韩精品一区二区三区中文字幕 | 亚洲成AV人片一区二区| 玩弄放荡人妻一区二区三区| 日韩国产精品无码一区二区三区| 最美女人体内射精一区二区| 国产无线乱码一区二三区| 一区二区三区国产| 精品深夜AV无码一区二区老年| 日本福利一区二区| 国产一区二区三区免费视频| 国产在线精品一区二区高清不卡| 人妻AV一区二区三区精品| 精品熟人妻一区二区三区四区不卡| 精品一区二区三区视频| av无码一区二区三区| 性色av一区二区三区夜夜嗨| 精品国产一区二区三区香蕉 | 日本一区二区三区在线观看| 人妻无码一区二区三区AV| 国产综合精品一区二区| 国精产品一区一区三区| 97精品国产一区二区三区| 无码欧精品亚洲日韩一区夜夜嗨| 伊人无码精品久久一区二区| 精品乱码一区二区三区在线 | 精品国产一区二区二三区在线观看| 久久一区二区三区99| 97精品一区二区视频在线观看| 一区二区三区在线观看免费| 无码人妻精品一区二区在线视频| 青娱乐国产官网极品一区 | 亚洲中文字幕丝袜制服一区| 国产精品分类视频分类一区| 国产一区二区影院| 无码播放一区二区三区| 国产av熟女一区二区三区| 国产一区二区三区在线免费观看| 免费无码毛片一区二区APP| 人妻无码一区二区视频| 日韩精品视频一区二区三区|