一个canvas的demo
该demo放于tomcat下运行,否则出现跨域错误
<!DOCTYPE html> <html><head><meta charset="utf-8"></head><body style="height: 100%; margin: 0"><div style="text-align: center;"><canvas id="myCanvas" width="500" height="300" style="border: 1px solid #fff123"></canvas><div><button id="btn" οnclick="download()">点我下载</button></div></div><script type="text/javascript">let cans=document.getElementById("myCanvas");let ctx=cans.getContext("2d");let img =new Image();img.src="2.jpg";img.setAttribute("crossOrigin",'Anonymous');img.onload = function(){//以Canvas画布上的坐标(10,10)为起始点,绘制图像ctx.drawImage(img, 10, 10); ctx.drawImage(img,50,50,100,100);ctx.strokeStyle = "#0695FF"; //定义矩形的颜色ctx.strokeRect(50,50,100,100);ctx.strokeRect(50,170,100,100);};function imgType(ty) {let type = ty.toLowerCase().replace(/jpg/i, 'jpeg');var r = type.match(/png|jpeg|bmp|gif/)[0];return 'image/' + r;}function download() {let type = 'png'; //设置下载图片的格式 let img_png_src = cans.toDataURL("image/png"); //将canvas保存为图片 let imgData = img_png_src.replace(imgType(type),'image/octet-stream');let filename = '图片' + '.' + type; //下载图片的文件名 saveFile(imgData,filename);}let saveFile = function(data, fileName){let save_link = document.createElement('a');save_link.href = data;save_link.download = fileName;let event = document.createEvent('MouseEvents');event.initEvent("click", true, false);save_link.dispatchEvent(event);};</script></body> </html
转载于:https://www.cnblogs.com/daysn/p/10374828.html
一个canvas的demo相关推荐
- 微信小游戏 - Canvas/WebGL Demo 移植
这是个人关于微信小游戏系列文章的第一篇,在这系列文章里会描述 -- 如何把一些 Canvas/WebGL Demo 移植到小游戏环境并支持双端运行: 对小游戏在 Android 平台的运行时架构进行分 ...
- 移植到android_微信小游戏 Canvas/WebGL Demo 移植
本文由大神 易旭昕 授权发布, 原文链接:https://zhuanlan.zhihu.com/p/33785287 (点击文后原文链接可跳转至作者的知乎) --------------------- ...
- canvas 文字颜色_实现一个canvas小画板
<canvas>是HTML5新增的元素,可用于通过使用JavaScript中的脚本来绘制图形.例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染. --摘自MDN ...
- java 基础api实现上传,上传文件到7牛云存储的java api一个简单的demo实现
最近在做一个项目,需要用到云存储,项目用的是七牛云.现在将项目过程中关于调用七牛云平台的java api来上传本地文件到七牛云空间的一个简单的demo展示给大家,希望对同样再用七牛云的童鞋们有所帮助. ...
- 我的第一个 react redux demo
最近学习react redux,先前看过了几本书和一些博客之类的,感觉还不错,比如<深入浅出react和redux>,<React全栈++Redux+Flux+webpack+Bab ...
- Unity3D引擎入门搭建一个FPS游戏Demo
目录 一.unity3d简介(平台,应用范围,经典游戏) 二.界面,基础操作(界面,创建场景,灯光系统,摄像机,组件,脚本语言) 1.界面 2.基本操作 三.demo制作(坐标系统,视角控制,移动,碰 ...
- 三维重建基本流程,搭建一个龙的demo
最近在学习三维重建的一些知识,作为一个小白,从入门到完成一次重建过程是一个需要花一段比较长时间的过程,在网上搜索各种资料时,会因为资料不全,导致无法理清楚逻辑,从而导致入门困难. 我主要是通过书和网上 ...
- 开发一个Canvas小游戏 实现一个游戏“引擎”
前言 这个游戏其实在三四年前就写了,中间还重构过好几次,之前都是用简单的面向对象和函数式编程来写,游戏中的元素关系到还是分的挺开,但是游戏的渲染,运算等逻辑分的不够清晰,整个逻辑基本都是自顶向下的流水 ...
- 实现一个canvas画板
<canvas>是HTML5新增的元素,可用于通过使用JavaScript中的脚本来绘制图形.例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染. --摘自MDN ...
- android 观察者模式的简单demo,一个简单的demo彻底搞懂观察者模式
介绍 观察者模式也被称为发布-订阅(Publish/Subscribe)模式,它属于行为型模式的一种.观察者模式定义了一种一对多的依赖关系,一个主题对象可被多个观察者对象同时监听.当这个主题对象状态变 ...
最新文章
- SAP QM 事务代码QPR3显示一个Physical Sample Record
- hadoop2.4.1结合hbase0.96.2
- Android UI开发第三十篇——使用Fragment构建灵活的桌面
- Luffy之Xadmin以及首页搭建(轮播图,导航)
- Android--ViewPager点击按钮切换下一页
- [Python图像处理] 七.图像阈值化处理及算法对比
- aix6.1 nfs
- 求csdn博客优良编辑方法
- 图像分类算法DenseNet论文解读
- selenium 模拟登录qq空间
- GM300单片硅钢铁损测试仪操作使用指引
- SystemUI Monkey测试原生代码报错:MLand类ArrayIndexOutOfBoundsException
- 违背妇女意志_2018年国际妇女节:在技术中庆祝妇女
- 计算机桌面文件如何发送给qq好友,QQ怎么与好友分享屏幕 如何共享电脑屏幕给好友...
- vue读取excel表格数据_vue 利用 js-xslx 读取 excel 表格文件
- 文本溢出显示省略号效果
- 技术随笔:利用反余弦函数绘制余弦曲线
- 【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定
- 第一个计算出地球周长的人——埃拉托色尼
- day13-event2
热门文章
- java中常用的类——Object类
- spark结构化流保存mysql_[Spark]-结构化流之输出篇(待重修)
- date java format_java-DateFormat
- javascript 轮播图(缓存效果)详细篇
- PHP JAVA BASE64 encode decode
- 字符串统计,一个中文算2个字符,一个英文算一个字符
- RocketMQ 集群部署模式 理论介绍
- QT creator 编辑器快捷键
- python2.7.11 for iOS 苹果上的python27环境
- Linux笔记--Linux进程通信