时间:2021-05-26
解决方案
function mergeImgs(list) { const imgDom = document.createElement('img') document.body.appendChild(imgDom) const canvas = document.createElement('canvas') canvas.width = 500 canvas.height = 500 * list.length const context = canvas.getContext('2d') list.map((item, index) => { const img = new Image() img.src = item // 跨域 img.crossOrigin = 'Anonymous' img.onload = () => { context.drawImage(img, 0, 500 * index, 500, 500) const base64 = canvas.toDataURL('image/png') imgDom.setAttribute('src', base64) // console.log(baseList) } })}const urlList = ['./img/timg%20(1).jpg', './img/timg.jpg']mergeImgs(urlList )代码稍微优化一下,改成公共方法
/** * 合并多张图片,返回新的图片 * @param {Array} list 图片url数组 * @param {Number} cwith 画布宽度 默认500 * @param {Number} cheight 画布高度 默认500 */function mergeImgs(list, cwith = 500, cheight = 500) { return new Promise((resolve, reject) => { const baseList = [] const canvas = document.createElement('canvas') canvas.width = cwith canvas.height = cheight * list.length const context = canvas.getContext('2d') list.map((item, index) => { const img = new Image() img.src = item // 跨域 img.crossOrigin = 'Anonymous' img.onload = () => { context.drawImage(img, 0, cheight * index, cwith, cheight) const base64 = canvas.toDataURL('image/png') baseList.push(base64) if (baseList[list.length - 1]) { console.log(baseList) // 返回新的图片 resolve(baseList[list.length - 1]) } } }) })}const urlList = ['./img/timg%20(1).jpg', './img/timg.jpg']mergeImgs(urlList ).then(base64 => { const imgDom = document.createElement('img') imgDom.src = base64 document.body.appendChild(imgDom)})效果
到此这篇关于js使用Canvas将多张图片合并成一张的实现代码的文章就介绍到这了,更多相关js canvas图片合并一张内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
木马原理:入侵者使用诸如ASP图片木马生成器之类的工具将一张正常的图片与一个ASP木马文件合并成一个图片文件(即将对网站有害的ASP代码插在图片编码之后,虽然图
在制作幻灯片时,为了追求效果,我们有时需要让多张图片在一张幻灯片中循环滚动播放,但是单一的动画效果却无法实现,下面小编就为大家介绍PPT使用多张图片在一张幻灯片
你是否遇到过这样的问题,要把多张表头一样就数据不同的工作表合并成一张总表。小编今天就叫你该怎么处理,例如三张来自不同供应商的货品数量统计,要得出一张各个月份总的
你是否遇到过这样的问题,要把多张表头一样就数据不同的工作表合并成一张总表。小编今天就叫你该怎么处理,例如三张来自不同供应商的货品数量统计,要得出一张各个月份
1.粒子文本的实现原理粒子文本的实现原理是:使用两张canvas,一张是用户看不到的canvas1,用来绘制文本;另一张是用户看到的canvas2,用来根据ca