图片1 是个海报,图片2是个二维码,把这个二维码镶嵌到图片1 的指定位置上

function drawAndShareImage(opt, cb) {
if (!opt) {
console.error('没有图片');
return;
}
//imgSrc1 背景图片(二维码)链接
//imgSrc2 小图片(头像)链接
var canvas = document.createElement('canvas'); canvas.width = opt.width;
canvas.height = opt.height; var context = canvas.getContext('2d'); var bgImage = new Image(); bgImage.src = opt.bgImage;
bgImage.crossOrigin = 'Anonymous'; bgImage.onload = function (){
context.drawImage(bgImage, 0, 0, opt.width, opt.height); var index = 0;
for (var i = 0; i < opt.images.length; i++) {
var img = opt.images[i];
var imgDom = new Image();
imgDom.src = img.src; //背景图片 你自己本地的图片或者在线图片
imgDom.crossOrigin = 'Anonymous';
imgDom.onload = function () {
context.drawImage(imgDom, img.x, img.y, img.width, img.height);
index++;
if (index == opt.images.length) {
var base64 = canvas.toDataURL('image/png');
cb(base64);
}
};
}
}
}
//调用
drawAndShareImage(
{
width: 700,
height: 1300,
bgImage: bgImage,//图片资源
images: [
{
src: src,//图片资源
x: x,
y: y,
width: width,
height: height,
},
],
},
function (res) {
var myImg = document.getElementById(MyImg);
myImg.src = res;
}
);
<img style="width: 100%;display: block;" id="MyImg" src="" alt="" srcset="" />

利用canvas合并两个海报的更多相关文章

  1. 利用python合并两个文件

    1格式如下 在做利用zabbix的api来批量添加主机的时候,需要处理ip和hostname,在借用别人写的py程序的基础上,自己有改装了以下脚本,为自己使用.需要时ip和hostname为一个统一格 ...

  2. 利用bat合并两个hex文件

    单片机程序如果有IAP功能的话,就会生成两个hex文件,一个是Boot,一个是App,如果给让生产烧录两个文件,就会降低生产效率,所以在烧录前最好将两个文件合并成一个文件,烧录一次即可,合并方法如下: ...

  3. canvas合并两张图片

    解析: 原理是一样的 画多张图需要一张一张画 也就是等图片onload成功后处理 这里代码写的比较随意 实际用的时候可以小粉转一下 也非常简单.我懒~~ 么么.. newImage(text) { / ...

  4. leetcode-88合并两个有序数组

    合并两个有序数组 思路:利用索引合并两个列表,排序.注意不需要返回值,只修改nums1 class Solution: def merge(self, nums1: List[int], m: int ...

  5. 小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像)

    小程序利用canvas 绘制图案 (生成海报, 生成有特色的头像) 微信小程序生成特色头像,海报等是比较常见的.下面我来介绍下实现该类小程序的过程. 首先选择前端来通过 canvas 绘制.这样比较节 ...

  6. HTML5利用canvas,把多张图合并成一张图片

    需求分析,根据当前网页中的几张图片,在手机上长按,保存图片到相册或者发送给好友. drawCanvas(){ var self = this; var imgsrcArray = [ require( ...

  7. 用H5中的Canvas等技术制作海报

    在去年的时候也实现过合成海报的功能,不过当时时间仓促,实现的比较简单. 就一个旋转功能,图片也不能拖动放大,也不能裁剪. 去年的实现可以参考<移动图片操作--上传>和<移动图片操作- ...

  8. 利用Canvas进行绘制XY坐标系

    首先来一发图 绘制XY的坐标主要是利用Canvas setLeft和setBottom功能(Canvas内置坐标的功能) 1.首先WPF中的坐标系都是从左到右,从上到下的 即左上角位置(0,0)点,所 ...

  9. 如何利用SVN合并代码

    一.  背景     平时在进行开发时,一般都会有多版本同时进行,包括项目版本.周版本.紧急版本等,当某一个版本具备上线条件后,需要在上一个已发布的版本基础上进行发布,才能够避免出现版本相互覆盖,因此 ...

  10. Python合并两个numpy矩阵

    numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 实际的应用中,矩阵的合并是一个经常发生的操作,如何利 ...

随机推荐

  1. C#移除字符串中的不可见Unicode字符

    背景 最近发现某个数据采集的系统拿下来的数据,有些字段的JSON被莫名截断了,导致后续数据分析的时候解析JSON失败. 类似这样 {"title": "你好 或者这样,多 ...

  2. nginx 隐藏 index.php 直接访问

    项目配置文件vhosts加上: if ( !-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } 修改后如图

  3. 【学习笔记】C/C++ 设计模式 - 模板模式

    介绍说明 模板设计模式是一种非常简单的设计模式,其主要是利用了虚函数的特性实现.非常适合应用在一些算法.流程.业务逻辑是固定的形式,其中某些步骤的实现方式又无法确定下来的场景. 举例说明 以下为模拟某 ...

  4. Android第五次作业

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

  5. 淘宝数据采集之js采集

    搜索页面采集,数据在控制台哦!!! 搜索页面采集,数据在控制台哦!!! 搜索页面采集,数据在控制台哦!!! 既然能打到控制台,当然也能传到系统!!! 既然能打到控制台,当然也能传到系统!!! 既然能打 ...

  6. DNA

    思路一: 这题需要桶+哈希(简化版像A 1  B  2 ......) 具体: 先把数据输入 再枚举可能的右端点,再由右端点得到左端点(l和r相差k) 在 l到r 区间内将这一段区间哈希成一个4进制数 ...

  7. 【已解决】rust 报错 no_std can't find crate for `test` || vscode 工作区多文件夹

    遇到下面的问题,请修改vscode的设置文件 如下 { "rust-analyzer.checkOnSave.allTargets": false, "rust-anal ...

  8. vue+elementUI 实现设置还款日字母弹窗组件

    1.业务背景 还款业务,设置每月还款日,选每月几号扣款,不需要29.30.31,因为不是每个月都有这三天的 2.预期效果图 3.代码实现 3.1 初始化vue项目 地址:https://cn.vuej ...

  9. C# winform 一个窗体需要调用自定义用户控件的控件名称

    给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSH ...

  10. ES6的Set详解

    数组去重 let arr = [ 1,2,3,4,5,3,2 ] // 数组去重 // 方法一 let newArr = [new Set(arr)] console.log(newArr); // ...