javascript基于canvas实现图片转base64数据
                
        
                
        JavaScipt
                
        2023-05-20 10:12:14
            
base64格式数据图片在现有网站中或多或少都能看到一部分它的影子,base64特点使它在一些特定的场景中有着不可比拟的优势。
跟随文章一起来看看base64数据的优势及如何在前端代码中实现对图片转base64数据。
一、base64数据的优势
    1.1、base64格式的图片转化为字符串后,图片文件会随着html元素一并加载,占用内存小,减少请求次数从而也降低了服务器的开销。
    1.2、不存在跨域问题,对于多数图片来说跨域使不可避免的麻烦。但base64文件完全没有这方面的担忧。
1.3、不存在因为图片缓存而造成未及时更新的问题。
    1.4、base64的文本格式,占用内存小,转换后的大小比例大概为原来的1/3左右,从而降低了资源服务器的消耗。
二、前端使用canvas对图片转base64
    2.1、完整方法代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			function imgToBase64(imgSrc, imgType, callback) {
			    let type = imgType || 'image/png',
			    dataURL,
			    img = new Image();
			    // 允许资源跨域使用
			    img.setAttribute('crossOrigin', 'anonymous');
			    img.src = imgSrc;
			    img.onload = function () {
			        let imgWidth = img.width,
			        imgHeight = img.height;
			        let canvas = document.createElement('canvas'),
			        ctx = canvas.getContext('2d');
			        canvas.width = imgWidth;
			        canvas.height = imgHeight;
			        ctx.drawImage(img, 0, 0, imgWidth, imgHeight);
			        dataURL = canvas.toDataURL(type);
			        // console.log(dataURL);
			        callback && callback(dataURL)
			        return dataURL
			    }
			}
			imgToBase64('./haibg.jpg','image/jpeg',function(e){
				console.log(e)
			})
		</script>
	</body>
</html>    2.2、imgToBase64参数解析
        imgSrc:需要转换的图片地址
        imgType:转换后的图片类型(如:image/png、image/jpeg)
        callback:方法回调
		    
		        六月初字帖坊小程序 
		    
		     你想要的字帖模板及工具,这里都有! 
		
				899篇文章
				3494人已阅读
			
			
			
		
				        
六月初