当前位置: 首页 > news >正文

域名注册网站建设方案xampp 如何将建好的wordpress发送到网络空间中

域名注册网站建设方案,xampp 如何将建好的wordpress发送到网络空间中,广州营销型网站建设,推广的含义最近写需求#xff0c;遇到要给图片加水印的需求。 刚开始想的方案是给图片上覆盖一层水印照片#xff0c;但是这样的话用户直接下载图片水印也会消失。 后来查资料发现用 canvas 就可以给图片加水印#xff0c;下面是处理过程。 首先我们要确认图片的格式#xff0c;我们通… 最近写需求遇到要给图片加水印的需求。 刚开始想的方案是给图片上覆盖一层水印照片但是这样的话用户直接下载图片水印也会消失。 后来查资料发现用 canvas 就可以给图片加水印下面是处理过程。 首先我们要确认图片的格式我们通过 input 上传的图片格式一般是 File File 对象是特殊类型的 Blob即 Blob 格式。 这样的话我们需要先把 Blob 文件转成 img 标签先通过 FileReader 读取文件通过 reader.readAsDataURL 获得文件 Base 64 编码 URL 地址拿到 URL 后生成 img 标签。 1. Blob 文件转成 img 标签 // blob 文件格式转成 img 标签const blobToImg (blob) {return new Promise((resolve, reject) {const reader new FileReader()reader.readAsDataURL(blob)reader.onload () {let img new Image()img.src reader.resultimg.addEventListener(load, () resolve(img))}})}这里要注意如果使用 addEventListener 需要先注册事件监听。 const blobToImg (blob) {return new Promise((resolve, reject) {const reader new FileReader()reader.addEventListener(load, () {let img new Image()img.src reader.resultimg.addEventListener(load, () resolve(img))})reader.readAsDataURL(blob)})}2. img 标签转成 canvas // 将img内容绘制到canvas画布imgToCanvas(img) {const canvas document.createElement(canvas)canvas.width img.widthcanvas.height img.heightconst context canvas.getContext(2d)context.drawImage(img, 0, 0)return canvas}3. 在 canvas 画布上绘制水印 水印通过 ctx.createPattern(image, repetition) 方法来进行重复绘制由于 image 参数要是是 img 标签格式或者 canvas 文件格式所以我们可以让 UI 老师生成一个水印的图片或者我们用 canvas 自己画一个水印的图片进行复制。 如果我们需要直接生成图片来进行展示那我们可以用 canvas.toDataURL() 直接从 canvas 生成图片地址。 如果需要生成 Blob 格式传给后端那我们可以用 canvas.toBlob() 方法从 canvas 生成 Blob 文件格式传给后端。 // canvas画布上绘制水印waterMark(canvas) {return new Promise((resolve, reject) {const ctx canvas.getContext(2d)// 绘制水印 canvasconst canvasWater this.drawWaterCanvas(已失效)// 绘制重复的水印ctx.fillStyle ctx.createPattern(canvasWater, repeat)ctx.fillRect(0, 0, canvas.width, canvas.height)// 这里我需要直接展示所以就直接生成图片地址resolve(canvas.toDataURL())})},drawWaterCanvas(str) {const canvasWater document.createElement(canvas)canvasWater.width 400canvasWater.height 400const ctxWater canvasWater.getContext(2d)ctxWater.textAlign leftctxWater.textBaseline middlectxWater.font 32px Microsoft YaheictxWater.fillStyle rgba(0, 0, 0, 0.3)ctxWater.rotate((-20 * Math.PI) / 180)ctxWater.fillText(str, 10, 80)return canvasWater}4. VUE 中实际应用 templatedivimg :srcimgUrl alt //div /templatescript import loppy from ./assets/loppy.jpgexport default {data() {return {imgUrl: }},created() {const img new Image()img.src loppyimg.onload async () {const canvas this.imgToCanvas(img)const url await this.waterMark(canvas)this.imgUrl url}},methods: {// 将img内容绘制到canvas画布imgToCanvas(img) {const canvas document.createElement(canvas)canvas.width img.widthcanvas.height img.heightconst context canvas.getContext(2d)context.drawImage(img, 0, 0)return canvas},// canvas画布上绘制水印并转换为blob对象waterMark(canvas) {return new Promise((resolve) {const ctx canvas.getContext(2d)// 绘制水印 canvasconst canvasWater this.drawWaterCanvas(图片已失效)// 绘制重复的水印ctx.fillStyle ctx.createPattern(canvasWater, repeat)ctx.fillRect(0, 0, canvas.width, canvas.height)resolve(canvas.toDataURL())})},drawWaterCanvas(str) {const canvasWater document.createElement(canvas)canvasWater.width 500canvasWater.height 500const ctxWater canvasWater.getContext(2d)ctxWater.textAlign leftctxWater.textBaseline middlectxWater.font 32px Microsoft YaheictxWater.fillStyle rgba(0, 0, 0, 0.3)ctxWater.rotate((-20 * Math.PI) / 180)ctxWater.fillText(str, 10, 200)ctxWater.fillText(new Date().toLocaleString(), 10, 300)return canvasWater}} } /scriptstyle langscss scoped img {width: 200px;height: 200px; } /style
http://www.hkea.cn/news/14525945/

相关文章:

  • 天河区网站公司智能化网站建设
  • 网站后台更新无法在网页显示产品设计工具
  • 华邦网站公司主页网址
  • 广州市建设网站廊坊市网站建设
  • 广元 网站建设wordpress编辑器经典
  • 网站建设和维护pdf新类型网站
  • 赤壁网站建设做班级网站的详细计划书
  • 佛山市南海区建设局网站美食门户网站源码
  • 网络设计课程培训seo搜索引擎优化推广专员
  • 免费建网站哪个好微信卖水果小程序
  • 空间里怎么放多个网站王野天女演员
  • 教育类企业网站软件工程35岁就失业吗
  • 房屋设计网站有哪些湖南发展最新消息公告
  • 怎样做28网站代理家居品牌策划公司
  • 建站技术知识虚拟技术对网站建设维护的影响
  • 如何创建网站老鱼网网站上的专题 怎么设计
  • 网站建设培训班上的讲话外链的作用
  • 龙岩网站设计招聘网广告投放网
  • 网站建设加盟招商qq代刷网站推广免费
  • 电商网站设计思维导图关注网站制作
  • 维护网站多少钱企业查询天眼查入口
  • 游戏公司seo关键词选择及优化
  • 个人备案网站营业执照家装公司电话
  • 国外做的好的医疗网站设计北京互联网公司排行榜
  • 网站底部 设计信阳网站seo
  • 中山建设局网站购物商城平台开发
  • 租赁商城手机网站开发企业展厅设计公司口碑好的原因
  • 中国建设银行官方网站登录入口怎么黑人网站
  • 一站式手机网站制作wordpress标题图标
  • 网站安全检测报告中国建设工程项目网