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
MySQL paging queries are usually implemented thro...
<br />How can I remove the scroll bar on the...
The specific code is as follows: <style> #t...
This article shares the specific code of Vue to i...
Preface The previous article introduced the insta...
Run the command: glxinfo | grep rendering If the ...
Preface When it comes to database transactions, a...
Docker is a very popular container technology. Th...
1. Solution 1.1 Describing the interface context-...
As the data stored in the MySQL database graduall...
First you need to install Vue-cli: npm install -g...
A major feature of the WeChat 8.0 update is the s...
Serve: # chkconfig --list List all system service...
Web forms are the primary communication channel b...
I have encountered many problems in learning Dock...