整合營銷服務(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
          

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


          主站蜘蛛池模板: 麻豆一区二区三区精品视频| 偷拍精品视频一区二区三区| 国产成人精品一区二区三区| 日韩人妻无码一区二区三区久久| 精品国产亚洲第一区二区三区| 国产精品无码不卡一区二区三区| 亚洲精品无码一区二区| 红杏亚洲影院一区二区三区| 国内精品视频一区二区三区八戒| 精品视频一区二区三三区四区| asmr国产一区在线| 毛片一区二区三区无码| 免费无码毛片一区二区APP| 狠狠色婷婷久久一区二区三区| 国产精品电影一区二区三区 | 综合激情区视频一区视频二区| 国产精品毛片一区二区| 秋霞无码一区二区| 一区二区高清视频在线观看| 一区二区三区视频在线观看| 国产精品一区二区毛卡片| 精品国产一区二区三区久久蜜臀| 久久亚洲日韩精品一区二区三区 | 日韩高清国产一区在线| 国产亚洲一区二区精品| 国产午夜一区二区在线观看| 无码中文字幕一区二区三区| 精品无码一区二区三区在线 | 国产伦精品一区二区三区视频猫咪| 国产一区二区好的精华液| 亚洲中文字幕一区精品自拍| 精品一区二区三区四区在线播放 | 无码人妻精品一区二区蜜桃网站| 久久人妻内射无码一区三区| 激情综合一区二区三区| 韩国福利一区二区三区高清视频| 精品国产一区二区三区在线观看| 久久久99精品一区二区| 久久亚洲中文字幕精品一区四 | 日韩av片无码一区二区三区不卡| 三级韩国一区久久二区综合|