<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
width: 0;
height: 0;
overflow: hidden;
}
canvas {
border: 1px solid #000;
}
</style>
</head>
<body>
<form>
<input type="file" name="img" id="btn">
</form>
<div class="container">
<canvas width="0" height="0"></canvas>
</div>
<script>
dataURLtoBlob = function (dataurl) {
var arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
//将blob转换为file
blobToFile = function (theBlob, fileName) {
theBlob.lastModifiedDate = new Date();
theBlob.name = fileName;
return theBlob;
}
var from = document.querySelector('#btn')
from.onchange = function (e) {
var imgurl = window.URL.createObjectURL(from.files[0])
console.log(imgurl)
var image = new Image()
image.onload = function () {
var myCanvas = document.querySelector('canvas')
var ctx = myCanvas.getContext('2d')
var imageWidth = image.width
var imageHeight = image.height
myCanvas.height = 750 * imageHeight / imageWidth
myCanvas.width = 750
ctx.drawImage(image, 0, 0, imageWidth, imageHeight, 0, 0, 750, 750 * imageHeight / imageWidth)
var imageData = new Image();
// canvas.toDataURL 返回的是一串Base64编码的URL
// 指定格式 PNG
imageData.src = myCanvas.toDataURL("image/png");
var bloburl = myCanvas.toDataURL();
// 转file对象
//调用
var blob = dataURLtoBlob(bloburl);
var file = blobToFile(blob, 'new');
console.log(file)
console.log(typeof(file))
// 保存到本地
// console.log('bloburl', bloburl);
// var anchor = document.createElement('a');
// if ('download' in anchor) {
// anchor.style.visibility = 'hidden';
// anchor.href = bloburl;
// anchor.download = name;
// document.body.appendChild(anchor);
// var evt = document.createEvent('MouseEvents');
// evt.initEvent('click', true, true);
// anchor.dispatchEvent(evt);
// document.body.removeChild(anchor);
// } else {
// location.href = bloburl;
// }
}
image.src = imgurl
}
</script>
</body>
</html>
canvas图片处理小案例
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、文字特效部分目录及效果图预览二、图片处理部分都使用了下面这张 一、文字特效部分目录及效果图预览 1.阴影文字阴...
- 1 前 言 1.1 预览图 2 实 现 本例使用: Vue element-ui 2.1 画 图 注意: canv...