亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

本文實(shí)例講述了js+canvas實(shí)現(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:在線圖片和本地圖片都要注意下跨越的問(wèn)題,最好放在服務(wù)器上測(cè)試。

java的實(shí)現(xiàn)方式

public static String generateCode(String codeUrl, Integer userId, String userName) {
 Font font = new Font("微軟雅黑", Font.PLAIN, 30);// 添加字體的屬性設(shè)置
 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);
 // 設(shè)置文本樣式
 g.setFont(font);
 g.setColor(Color.BLACK);
 // 截取用戶名稱的最后一個(gè)字符
 String lastChar = userName.substring(userName.length() - 1);
 // 拼接新的用戶名稱
 String newUserName = userName.substring(0, 1) + "**" + lastChar + " 的邀請(qǐng)二維碼";
 // 添加用戶名稱
 g.drawString(newUserName, 620, imageLocal.getHeight() - 530);
 // 完成模板修改
 g.dispose();
 // 獲取新文件的地址
 File outputfile = new File(imgName);
 // 生成新的合成過(guò)的用戶二維碼并寫(xiě)入新圖片
 ImageIO.write(imageLocal, "png", outputfile);
 } catch (Exception e) {
 e.printStackTrace();
 }
 // 返回給頁(yè)面的圖片地址(因?yàn)榻^對(duì)路徑無(wú)法訪問(wèn))
 imgName = Constants.PROJECT_URL + "codeImg/" + userId + ".png";
 return imgName;
}

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

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論