html微信头像截取的代码
导读:微信头像截取是一个很常见的应用场景,以下是一个使用HTML实现的微信头像自动截取的代码:<div id="preview"></div><input type="file" id="fileInput" /&g...
微信头像截取是一个很常见的应用场景,以下是一个使用HTML实现的微信头像自动截取的代码:
div id="preview">
/div>
input type="file" id="fileInput" />
script>
var imgSrc = "";
var imgWidth, imgHeight;
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
document.getElementById("fileInput").onchange = function(){
var file = this.files[0];
if(!/image\/\w+/.test(file.type)){
alert("请确保文件为图像类型!");
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(){
imgSrc = this.result;
var img = new Image();
img.src = imgSrc;
img.onload = function(){
imgWidth = this.width;
imgHeight = this.height;
var ratio = imgWidth/imgHeight;
canvas.width = canvas.height = Math.min(imgWidth, imgHeight);
var x = (imgWidth-canvas.width)/2;
var y = (imgHeight-canvas.height)/2;
ctx.drawImage(img, x, y, canvas.width, canvas.height, 0, 0, canvas.width, canvas.height);
document.getElementById("preview").style.backgroundImage = "url("+canvas.toDataURL()+")";
}
}
}
/script>
代码中包含了一个文件选择框和一个预览框。当用户选择文件时,通过FileReader将图片转化为base64编码的字符串,并读取图片的宽度和高度。将canvas的大小设置为宽度和高度的最小值,再根据原图片的宽高比计算需要裁剪的位置和大小。将原图片裁剪后绘制到canvas中,并将结果显示在预览框中。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: html微信头像截取的代码
本文地址: https://pptw.com/jishu/309335.html
