js+canvas实现两张图片合并成一张图片的方法
本文实例讲述了js+canvas实现两张图片合并成一张图片的方法。分享给大家供大家参考,具体如下:
JS和canvas的合成方式
functiondrawAndShareImage(){
varcanvas=document.createElement("canvas");
canvas.width=700;
canvas.height=700;
varcontext=canvas.getContext("2d");
context.rect(0,0,canvas.width,canvas.height);
context.fillStyle="#fff";
context.fill();
varmyImage=newImage();
myImage.src="./2.png";//背景图片你自己本地的图片或者在线图片
myImage.crossOrigin='Anonymous';
myImage.onload=function(){
context.drawImage(myImage,0,0,700,700);
context.font="60pxCourierNew";
context.fillText("我是文字",350,450);
varmyImage2=newImage();
myImage2.src="./1.png";//你自己本地的图片或者在线图片
myImage2.crossOrigin='Anonymous';
myImage2.onload=function(){
context.drawImage(myImage2,175,175,225,225);
varbase64=canvas.toDataURL("image/png");//"image/png"这里注意一下
varimg=document.getElementById('avatar');
//document.getElementById('avatar').src=base64;
img.setAttribute('src',base64);
}
}
}
PS:在线图片和本地图片都要注意下跨越的问题,最好放在服务器上测试。
java的实现方式
publicstaticStringgenerateCode(StringcodeUrl,IntegeruserId,StringuserName){
Fontfont=newFont("微软雅黑",Font.PLAIN,30);//添加字体的属性设置
StringprojectUrl=PathKit.getWebRootPath()+"/before/codeImg/";
StringimgName=projectUrl+userId+".png";
try{
//加载本地图片
StringimageLocalUrl=projectUrl+"weixincode2.png";
BufferedImageimageLocal=ImageIO.read(newFile(imageLocalUrl));
//加载用户的二维码
BufferedImageimageCode=ImageIO.read(newURL(codeUrl));
//以本地图片为模板
Graphics2Dg=imageLocal.createGraphics();
//在模板上添加用户二维码(地址,左边距,上边距,图片宽度,图片高度,未知)
g.drawImage(imageCode,575,imageLocal.getHeight()-500,350,350,null);
//设置文本样式
g.setFont(font);
g.setColor(Color.BLACK);
//截取用户名称的最后一个字符
StringlastChar=userName.substring(userName.length()-1);
//拼接新的用户名称
StringnewUserName=userName.substring(0,1)+"**"+lastChar+"的邀请二维码";
//添加用户名称
g.drawString(newUserName,620,imageLocal.getHeight()-530);
//完成模板修改
g.dispose();
//获取新文件的地址
Fileoutputfile=newFile(imgName);
//生成新的合成过的用户二维码并写入新图片
ImageIO.write(imageLocal,"png",outputfile);
}catch(Exceptione){
e.printStackTrace();
}
//返回给页面的图片地址(因为绝对路径无法访问)
imgName=Constants.PROJECT_URL+"codeImg/"+userId+".png";
returnimgName;
}
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript+HTML5特效与技巧汇总》、《JavaScript图片操作技巧大全》、《JavaScript图形绘制技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。