Solution 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 // Cross-domain 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 ) Optimize the code slightly and change it to a public method /** * Merge multiple images and return a new image * @param {Array} list Image url array * @param {Number} cwith Canvas width defaults to 500 * @param {Number} cheight The default height of the canvas is 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 // Cross-domain 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) // Return the new image 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) }) Effect This is the end of this article about the implementation code of js using Canvas to merge multiple images into one. For more relevant js canvas image merging content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: How to quickly install and deploy MySQL in Windows system (green free installation version)
>>: Basic knowledge of load balancing and a simple example of load balancing using nginx
The code looks like this: .process{ border:1px so...
As shown below: select name from mysql.proc where...
Table of contents Overview Single file components...
First post the effect picture: A scroll bar appear...
I just finished installing MySQL 5.7.19 in the ea...
Learn how to host your own website on Apache, a r...
Install MySQL for the first time on your machine....
Idea imports an existing web project and publishe...
This article records the installation and configu...
Preface To solve the single point of failure, we ...
Table of contents Difference between MVC and MVVM...
1. Installation environment 1. HUAWEI mate x cpu ...
What are slots? The slot directive is v-slot, whi...
Table of contents What is async? Why do we need a...
Introduction: AD is the abbreviation of Active Di...