js 图片上传时加水印
生活随笔
收集整理的這篇文章主要介紹了
js 图片上传时加水印
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
//通過file數(shù)據(jù)產(chǎn)生圖片Domfunction createfileImg(file) {return new Promise((resolve, reject) => {let img = new Image()img.src = URL.createObjectURL(file)//img綁定load事件(載入完畢后 返出圖片Dom)img.addEventListener('load', () => resolve(img))})}//畫布配置function handleCanvas(img) {// const canvas = document.createElement('canvas')var canvas = document.getElementById("myCanvas");canvas.width = 300 //也可使用圖片的寬 和 高canvas.height = 300//返回一個用于繪畫的環(huán)境const ctx = canvas.getContext('2d')//寫入圖片ctx.drawImage(img, 0, 0, 300, 300)//寫入水印文字ctx.font = '700 20px microsoft yahei'ctx.fillStyle = '#fff'ctx.textAlign = 'left'ctx.fillStyle = 'rgba(255, 255, 255,)'ctx.fillText(`${moment().format("YYYY-MM-DD HH:mm:ss")}`, 20, 290);return canvas}//創(chuàng)建blob對象,用于展示畫布上的圖片function createCanvasBlob(canvas) {return new Promise((resolve, reject) => {canvas.toBlob(blob => resolve(blob))})}async function customRequest(e) {//拿到圖片let fil = document.getElementById('fileId')//創(chuàng)建圖片const img = await createfileImg(fil.files[0])//處理畫布const canvas = handleCanvas(img)const blob = createCanvasBlob(canvas)// 轉(zhuǎn)為后端要的file對象const newFile = new File([blob], fil.files[0].name, { type: fil.files[0].type })//正常調(diào)用上傳的接口........}
效果圖:
?
總結(jié)
以上是生活随笔為你收集整理的js 图片上传时加水印的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 系统版本信息
- 下一篇: 第1章 ssh命令和SSH服务详解