1.使用canvas来实现图片添加水印(也包括上传图片后显示水印~)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>const img = new Image();img.src = 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2F53%2F0a%2Fda%2F530adad966630fce548cd408237ff200.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1641713990&t=72f8af1f008cc345262d05086b4b2afe';img.crossOrigin = "anonymous";img.onload = function () {const canvas = document.createElement("canvas");let _ix = img.width;let _iy = img.height;canvas.width = _ix;canvas.height = _iy;const ctx = canvas.getContext("2d");ctx.drawImage(img, 0, 0);ctx.textAlign = "left";ctx.textBaseline = "top";ctx.font = "18px Microsoft Yahei";ctx.fillStyle = "rgba(255, 255, 255, .5)";ctx.translate(0, 0);ctx.rotate((Math.PI / 180) * 15);//旋转//水印密度for (let i = 0; i < _iy / 120; i++) {  for (let j = 0; j < _ix / 50; j++) {ctx.fillText('11111', i * 120, j * 50, _ix);}}const base64Url = canvas.toDataURL()console.log(base64Url);console.log(base64toBlob(base64Url));console.log(translateBase64ImgToBlob(base64Url,"image/jpeg"));}/*Base64 转成 Blob*/function base64toBlob(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 });}/*Bolb 转 URL 原理: 利用URL.createObjectURL为blob对象创建临时的URL*/function translateBase64ImgToBlob(base64,contentType){var arr = base64.split(',')  //去掉base64格式图片的头部var bstr = atob(arr[1])   //atob()方法将数据解码var leng = bstr.lengthvar u8arr = new Uint8Array(leng)while(leng--){u8arr[leng] =  bstr.charCodeAt(leng) //返回指定位置的字符的 Unicode 编码}var blob = new Blob([u8arr],{type:contentType})var blobImg = {}blobImg.url = URL.createObjectURL(blob)  //创建URLblobImg.name = new Date().getTime() + '.png'return blobImg  }</script>
</body>
</html>

canvas 实现图片添加水印相关推荐

  1. 神奇的canvas——巧用 canvas 为图片添加水印

    代码地址如下: http://www.demodashi.com/demo/11637.html 很久之前写过一篇关于 canvas 的文章,是通过 canvas 来实现一个绚丽的动画效果,不管看过没 ...

  2. 小程序使用 canvas 给图片添加水印

    小程序使用 canvas 给图片添加水印 操作 canvas 相关的 api 使用的是微信最新提供的 (一路过来踩了好多坑-) 浅用微信小程序 canvas 给图片添加简单水印, 废话不多说, 先上效 ...

  3. JS前端基于canvas给图片添加水印,并下载带有水印的图片

    基于canvas给图片添加水印 实现效果图 图片添加水印的步骤 1.获取图片路径,将图片转换为canvas 2.canvas画布上绘制文字水印 3.水印绘制完成后,将canvas转换为图片格式 4.水 ...

  4. 前端实现可绘制的canvas画布_JS前端基于canvas给图片添加水印

    前两天给个人网站添加了一个小功能,就是在文章编辑上传图片的时候自动给图片加上水印.给网页图片添加水印是个常见的功能,也是互联网内容作者保护自己版权的方法之一.本文简单记录一下借助canvas在前端实现 ...

  5. 利用canvas给图片添加水印

    前言 前两天给个人网站添加了一个小功能,就是在文章编辑上传图片的时候自动给图片加上水印.给网页图片添加水印是个常见的功能,也是互联网内容作者保护自己版权的方法之一.本文简单记录一下借助canvas在前 ...

  6. 使用canvas给图片添加水印

    上接文章"图片处理" canvas元素其实就是一个画布,我们可以很方便地绘制一些文字.线条.图形等,它也可以将一个img标签里渲染的图片画在画布上. 我们在上传文件到后端的时候,使 ...

  7. 通过canvas给图片添加水印

    在页面添加一个上传文件的input标签 添加capture="camera"直接打开相机 <input id="file" type="file ...

  8. 使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,...

    一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不 ...

  9. html2canvas给图片添加水印,小程序用Canvas给图片加水印,拼接图片,制作名片

    Canvas是微信小程序中的一个原生组件,因此我们在使用它的时候要特别注意微信小程序对原生组件的使用说明.canvas这个组件其实就是一个画布,你可以在上面画很多你用其他方式不好实现的内容.下面我就将 ...

  10. vue上传图片加水印;js上传图片添加水印;vue给图片添加水印;canvas图片添加水印;canvas画布导出图片

    uni-app微信小程序图片加水印,点击看这篇 需求场景: 要求上传图片,并给图片添加水印.传给后端的也是有水印的图片. 逻辑步骤: 通过input上传图片,拿到图片的信息和base64,将图片绘制到 ...

最新文章

  1. 如何从Dart中的列表中找到最小值和最大值?
  2. U-Boot 之一 零基础编译 U-Boot 过程详解 及 编译后的使用说明
  3. python处理excel奖金_60万行的Excel数据,Python轻松处理
  4. @select注解_Mybatis基本知识十七:Mybatis注解式开发-单表注解式开发
  5. iphone主屏幕动态壁纸_iPhone8怎么设置动态壁纸?iPhone8动态壁纸设置教程
  6. 【OpenCV 例程200篇】22. 图像添加非中文文字
  7. 面试官问我:解释一下Dubbo服务暴露
  8. 求C n m(从n个数中选m个数,有多少种组合?问题)暴力—递归——回归数学公式,三种方法,层层优化!
  9. 11个Java 开源 socket框架
  10. mysql数据表的字段操作
  11. BUPT复试专题—统计字母(2008)
  12. 射频微波芯片设计4:耦合器芯片
  13. STM32F4应用笔记(二)利用蜂鸣器播放天空之城
  14. python 水晶报表_水晶报表连接Oracle做数据报表笔记
  15. 计算机桌面有阴影,电脑桌面图标有蓝色阴影 怎么去除桌面图标阴影
  16. USACO 2015 December Contest Gold T1: High Card Low Card
  17. 2022-4-21 适用于Orange Pi(香橙派) Zero/Zero2的kali 操作系统分享
  18. windows下更改中文用户名为英文
  19. 使用Python在Excel表指定位置插入多列并赋值
  20. 7.3 向量的数量积与向量积

热门文章

  1. 爬虫 - 超级鹰的基本使用
  2. 使用ArcPy将nc格式数据转换为tif格式数据
  3. 2022R1快开门式压力容器操作考试模拟100题模拟考试平台操作
  4. Linux消息队列及函数详解(含示例)
  5. PowerDesigner将PDM导出生成WORD文档(rtf文档)
  6. 开氏温度与摄氏度换算_温度是怎么来的,有没有物质没有温度?
  7. 斗地主系列之牌型大小比较
  8. Jmeter使用HTTP代理服务器无法打开网页问题的解决方法
  9. 你知道项目管理有哪些分类和体系吗?
  10. 微信小程序 后端接口(thinkphp)