最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js+canvas實現(xiàn)兩張圖片合并成一張圖片的方法

 更新時間:2019年11月01日 11:59:54   作者:蒼青浪  
這篇文章主要介紹了js+canvas實現(xiàn)兩張圖片合并成一張圖片的方法,結(jié)合實例形式分析了JavaScript結(jié)合HTML5 canvas實現(xiàn)圖片合并的操作技巧,并附帶了Java圖片合并的實現(xiàn)方法,需要的朋友可以參考下

本文實例講述了js+canvas實現(xiàn)兩張圖片合并成一張圖片的方法。分享給大家供大家參考,具體如下:

JS和canvas的合成方式

function drawAndShareImage(){
  var canvas = document.createElement("canvas");
  canvas.width = 700;
  canvas.height = 700;
  var context = canvas.getContext("2d");
  context.rect(0 , 0 , canvas.width , canvas.height);
  context.fillStyle = "#fff";
  context.fill();
  var myImage = new Image();
  myImage.src = "./2.png";  //背景圖片 你自己本地的圖片或者在線圖片
  myImage.crossOrigin = 'Anonymous';
  myImage.onload = function(){
    context.drawImage(myImage , 0 , 0 , 700 , 700);
    context.font = "60px Courier New";
    context.fillText("我是文字",350,450);
    var myImage2 = new Image();
    myImage2.src = "./1.png";  //你自己本地的圖片或者在線圖片
    myImage2.crossOrigin = 'Anonymous';
    myImage2.onload = function(){
      context.drawImage(myImage2 , 175 , 175 , 225 , 225);
      var base64 = canvas.toDataURL("image/png"); //"image/png" 這里注意一下
      var img = document.getElementById('avatar');
      // document.getElementById('avatar').src = base64;
      img.setAttribute('src' , base64);
    }
  }
}

PS:在線圖片和本地圖片都要注意下跨越的問題,最好放在服務器上測試。

java的實現(xiàn)方式

public static String generateCode(String codeUrl, Integer userId, String userName) {
 Font font = new Font("微軟雅黑", Font.PLAIN, 30);// 添加字體的屬性設置
 String projectUrl = PathKit.getWebRootPath() + "/before/codeImg/";
 String imgName = projectUrl + userId + ".png";
 try {
 // 加載本地圖片
 String imageLocalUrl = projectUrl + "weixincode2.png";
 BufferedImage imageLocal = ImageIO.read(new File(imageLocalUrl));
 // 加載用戶的二維碼
 BufferedImage imageCode = ImageIO.read(new URL(codeUrl));
 // 以本地圖片為模板
 Graphics2D g = imageLocal.createGraphics();
 // 在模板上添加用戶二維碼(地址,左邊距,上邊距,圖片寬度,圖片高度,未知)
 g.drawImage(imageCode, 575, imageLocal.getHeight() - 500, 350, 350, null);
 // 設置文本樣式
 g.setFont(font);
 g.setColor(Color.BLACK);
 // 截取用戶名稱的最后一個字符
 String lastChar = userName.substring(userName.length() - 1);
 // 拼接新的用戶名稱
 String newUserName = userName.substring(0, 1) + "**" + lastChar + " 的邀請二維碼";
 // 添加用戶名稱
 g.drawString(newUserName, 620, imageLocal.getHeight() - 530);
 // 完成模板修改
 g.dispose();
 // 獲取新文件的地址
 File outputfile = new File(imgName);
 // 生成新的合成過的用戶二維碼并寫入新圖片
 ImageIO.write(imageLocal, "png", outputfile);
 } catch (Exception e) {
 e.printStackTrace();
 }
 // 返回給頁面的圖片地址(因為絕對路徑無法訪問)
 imgName = Constants.PROJECT_URL + "codeImg/" + userId + ".png";
 return imgName;
}

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript+HTML5特效與技巧匯總》、《JavaScript圖片操作技巧大全》、《JavaScript圖形繪制技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

希望本文所述對大家JavaScript程序設計有所幫助。

相關(guān)文章

最新評論

灯塔市| 兴义市| 华宁县| 亚东县| 新宁县| 广平县| 茂名市| 永宁县| 武平县| 深泽县| 济阳县| 鄂尔多斯市| 莎车县| 潼关县| 盐城市| 西平县| 九龙县| 曲周县| 精河县| 泾川县| 青神县| 开远市| 蕉岭县| 北安市| 江阴市| 黔南| 稷山县| 沁源县| 秦安县| 万全县| 望谟县| 合肥市| 武强县| 平乐县| 承德市| 安西县| 阿拉善盟| 固阳县| 宁陵县| 前郭尔| 全椒县|