用菜鸟教程模拟的

菜鸟对应链接 https://www.runoob.com/try/try-cdnjs.php?filename=tryhtml5_canvas_tut_img

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body><p>Image to use:</p>
<img id="scream" src="img_the_scream.jpg" alt="The Scream" width="220" height="277"><p>Canvas:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;">
您的浏览器不支持 HTML5 canvas 标签。</canvas>
<img id="screamaa" src="" alt="The Scream" width="220" height="277"><input type="file"id="uploadFile"accept="image/*"/>
<script>var imgff= function (base64){var bili = 0.7; //压缩后的图片尺寸,0.7就是70%var img=new Image()
img.src = base64console.log("img.width", img.width,"height", img.height)
img.crossOrigin = "Anonymous";
img.onload = function() {var c=document.getElementById("myCanvas");var ctx=c.getContext("2d");//图片地址加载完后执行操作var newWidth = img.width; //压缩后图片的宽度var newHeight = img.height; //压缩后图片的高度c.width = newWidth; //压缩图的宽度c.height = newHeight; //压缩图的高度ctx.drawImage(img, 0, 0, newWidth,newHeight); //压缩 把图片放到画布上ctx.font="30px Arial";ctx.fillStyle = "#ffffff"; //设置水印ctx.fillText("你好", 40, 40); //选择水印位置let newBase64 = c.toDataURL("image/jpeg", 0.7);//压缩的模糊度 数字越小越模糊console.log("dnewBase64",newBase64)var c=document.getElementById("screamaa");c.src =newBase64
}
}var eleUploadFile = document.getElementById('uploadFile');eleUploadFile.addEventListener('change', function(event) {var file = event.target.files[0] || event.target.dataTransfer.files[0];var reader = new FileReader();reader.onload = function(e) {var base64 = e.target.result;// canvas压缩图片,并且回调显示imgff(base64)}reader.readAsDataURL(file);});</script></body>
</html>

图片上传时用Canvas 压缩和加水印相关推荐

  1. android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...

    最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...

  2. 解决H5 IOS手机图片上传时图片会旋转90°问题

    解决H5 IOS手机图片上传时图片会旋转90°问题 Vant 官方给出的解答需要自己解决,没有处理. 解决办法主要使用了 compressorjs 插件库 一.Vant UI库Uploader 组件图 ...

  3. 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传

    现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...

  4. 【报错笔记】关于图片上传时的路径问题

    在图片上传时将图片上传到本地磁盘后 如下将图片保存到了D盘下 因此在jsp页面中读取对应图片时,需要在tomcat中配置相关信息. 在jsp页面中图片路径src中使用虚拟路径加数据库中图片名称就可以将 ...

  5. 【报错笔记】在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录。

    在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录. 我使用UUID生成8级目录,在webapp下创建目录,将图片传进 ...

  6. [html] 图片上传时实现本地预览功能的原理是什么?

    [html] 图片上传时实现本地预览功能的原理是什么? 通过HTML5 File API读取用户上传的图片,生成一个image对象显示到页面 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容 ...

  7. php 更改图片后缀名,PHP在图片上传时如何改变图片后缀为jpg

    PHP在图片上传时改变图片后缀为jpg的方法:首先获取上传的图片后缀,并获取图片在电脑上的临时存储位置:然后获取临时存储文件的后缀:最后实现后缀转换,代码为[case 'im{ / S # p |ag ...

  8. php图片写入带问号_php实现图片上传时添加文字和图片水印技巧

    本文实现的功能特别适用于一些商城和图片站中,分享了图片在上传时添加文字和图片水印的技巧,供大家参考,具体内容如下 1. water.class.php header('Content-Type:tex ...

  9. 图片上传至服务器实现压缩

    2019独角兽企业重金招聘Python工程师标准>>> 1.缩略图压缩文件jar包 <!-- 图片缩略图 --><dependency><groupId ...

最新文章

  1. DDOS SYN Flood攻击、DNS Query Flood, CC攻击简介——ddos攻击打死给钱。限网吧、黄网、博彩,,,好熟悉的感觉有木有...
  2. 使用最新目标跟踪框mmtracking实现自己的目标跟踪项目
  3. 1012: [JSOI2008]最大数maxnumber 线段树
  4. python冒泡排序_5种python方法实现冒泡排序可视化:Bubble Sort Visualizer
  5. 系统安装,重装与优化:chapter2 硬盘的分区与格式化
  6. 6月30日后支付宝还能正常提现吗?因为银行直连要停止了
  7. [SimplePlayer] 1. 从视频文件中提取图像
  8. html5 vr效果,HTML5 Three.js 虚拟现实小实验(VR Experiment)
  9. [Codeforces Round #254 div1] C.DZY Loves Colors 【线段树】
  10. ElasticSearch之基于地理位置的搜索
  11. 查漏补缺:2020年搞定SpringCloud面试(含答案和思维导图)
  12. UI设计素材|app表单模板,临摹学习,有效提高设计水平!
  13. 当配置 DispatcherServlet拦截“/”,SpringMVC访问静态资源的三种方式
  14. 我的java学习心得
  15. 计算机ping使用的端口,mac系统ping端口命令怎么使用
  16. Lambda表达式实现机制的分析
  17. 数字图像处理(三)图像复原(噪声生成,噪声滤波器,逆滤波,维纳滤波,有约束最小二乘恢复)
  18. 爬取图片案例2(Ajax网页异步加载、Queue队列、线程池)
  19. 第五章运算符表达式和语句
  20. ESP32学习笔记(9)——TCP服务端

热门文章

  1. echarts的坐标轴添加滚轮
  2. Ajax 前端后端数据交互
  3. 基于WINCE.NET4.2系统的PDA使用PPC2003软件全攻略
  4. 分享几个黑科技神奇的网站,第一次发现的时候,我就“心动”了
  5. 【STM32开发】win平台开源工具链开发STM32(二)编译器和下载器
  6. rg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name
  7. excel有的单元文字可以超出单元格_excel表格里的文字超出单元格如何解决
  8. lvgl如何用单向直线触摸滑动条模拟编码器的滚动操作,请注意,单向触摸滑动条是一个输入外设,是一个硬件,而并非lvgl内置的滑条控件...
  9. 用Python画一个小猪佩奇
  10. bim综合免费插件:Revit中运用报告参数的方法