function srctoimg(src){
return new Promise((reslove,reject)=>{
let img = new Image()
img.onload = function(){
reslove(img)
}
img.onerror = function(err) {
reject(err)
}
img.src = src
})
}
img转canvas
function imgtocanvas(img){
let canvas = document.createElement("canvas");
let ctx = canvas.getContext('2d')
canvas.width = img.width
canvas.height = img.height
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
return canvas
}
ImageData转canvas
function ImageDatetocanvas(imgData){
let canvas = document.createElement("canvas");
let ctx = canvas.getContext('2d')
canvas.width = imgData.width
canvas.height = imgData.height
ctx.putImageData(imgData,canvas.width, canvas.height);
return canvas
}
canvas转ImageData
function canvastoImageDate(canvas){
let ctx = canvas.getContext('2d')
return ctx.createImageData(canvas.width,canvas.height)
}
canvas像素操作
function canvaspixel(canvas,deal) {
let ctx = canvas.getContext('2d')
var imgData = ctx.createImageData(canvas.width, canvas.height);
for (var i = 0; i < imgData.data.length; i += 4) {
deal(r,g,b,a)
}
ctx.putImageData(imgData, canvas.width, canvas.height);
return canvas
}
canava转DataURL(base64)
canvas.toDataURL()
DataURL(base64)转blob
function dataURLtoBlob(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 });
}