当前位置:主页 > www.488234a.com >

在Web应用程序中使用Canvas API

发布日期:2019-09-10 23:03   来源:未知   阅读:

  本文介绍如何在一个Web应用程序中利用HTML 5中的Canvas API创建、编辑、打开与输出图像。

  首先,我们需要检测用户浏览器是否对HTML 5中的Canvas API提供支持。一个简单的方法是利用Modernizr工具来进行检测,方法如下所示。

  //浏览器不支持Canvas API,使用诸如Flash、静态图片等其他技术

  在使用Canvas API的时候,我们首先需要在页面上放置一个canvas元素。然后,我们可以在JavaScript脚本代码中将一幅图像绘制在该canvas元素中,代码如下所示。

  在这段代码中,我们首先获取页面上canvas元素的图形上下文对象,通过该对象来使用Canvas API中所定义的所有可用于绘图的方法。接下来,我们创建一个Image对象并且将该对象的src属性值定义为canvas元素中所需要绘制图像的URL地址,这将使得所需要绘制的图像将被装载在该Image对象中。当该图像装载完毕后,我们使用canvas元素的图形上下文对象的drawImage方法将该图像绘制在canvas元素中。

  可以将该Image对象的src属性值指定为一个形式为dataURI地址,代码如下所示:

  你也许会问:为什么需要使用dataURI地址?,这是因为dataURI地址有一些自身的优势,例如接下来我们马上要介绍的如何将canvas元素中的图形或图像导出为一个data URI地址。

  canvas元素有一个toDataURL方法,该方法将导出图像的MIME类型作为唯一参数,代码如下所示。

  上面这行代码将canvas元素中的图像导出为一个JPEG格式的图像并且在新的浏览器窗口中打开该图像。浏览器地址栏中显示由canvas元素中的图像生成的data URI地址,浏览器将根据该data URI地址渲染窗口中的图像。但是,对于用户来说就好像在新的浏览器窗口中打开了该图像。

  另外请注意上面这行代码必须被运行在一个Web服务器中。从本地文件系统中直接运行该代码时浏览器将抛出错误。

  通过HTML 5中提供的各种将数据存储在客户端本地的技术,我们可以很轻松地将canvas元素中的图像存储在客户端本地。

  例如通过如下所示的代码,我们可以将canvas元素中的图像存储在WebStorage中。

  有时,你可能想将canvas元素中的图像上传到服务器端。这时,我们可以首先利用canvas元素的toDataURL方法将canvas元素中的图像输出为一个data URI地址,然后将该地址上传到服务器端。该地址分为两部分,中间用逗号分割,其中第一部分为“data:”+导出图像的MIME类型+“;base64”,第二部分为一个经过base64编码的字符串,在服务器端将其解码后即得到该图像的原始二进制数据,可以将其保存为图像文件,代码如下所示:

  算法描述:许多应用程序都需要按照顺序处理任务,但是不一定要求他们全部有序,或是不一定要一次就将他们排序。很多情况下我们只需要处理当前最紧急或拥有最高优先级的任务就可以了。面对这样的需求,优先队列算法是...博文来自:sunshine_forever的专栏

  在看这篇文章之前,你一定要接受一下谋哥的观点:金钱就是价值流通的手段,不要高看了钱。玩App怎么赚钱?貌似谋哥写的文章超级多,把这个最重要的忘记了。说实在的,我为啥要写“玩App呢?其实就是一种...博文来自:了悟生死大事

  前端时间在开发APP分享H5链接到微信的功能时,一直打不开,最终发现是因为微信分享会根据分享的不同,为原始链接拼接如下参数:朋友圈amp;from=timelineamp;isap...博文来自:跨语言,跨平台,跨应用

  用了BASE64编码,我怎么才能还原它?请高手指点,最好不要写代码,说说什么工具能用 感激不尽!论坛

  前言抖音短视频APP里虽然有保存视频的按钮,但这种方式保存的视频右下角有抖音的水印,并且这种方式不适用于电脑。所以,王中王开奖结果特马是多少号论坛,写这篇文章来分享如何下载没有水印的抖音视频到本地,此方法适用于电脑和手机,且不需要安...博文来自:Spring的博客

  手残一不小心选了个新课,哎1【单选题】关于化学能的说法错误是A、原子与原子之间的反应能量B、原子与分子之间反应能量C、分子与分子之间反应能量D、电子与电子之间反应能量我的答案:D得分:25.0分2【单...博文来自:Interneting_Plus的博客

  工作中需要分析一些链接,统计分析一些信息。比如如下的链接:博文来自:三分地

  Html5画布元素canvas提供操作布局和画布元素呈现的属性和方法的接口。Html5画布元素canvas接口也继承了HtmlElement接口的属性和方法...博文来自:网站建设之路

  什么是canvas?Canvas元素是HTML5的一部分,允许脚本语言动态渲染位图像。Canvas由一个可绘制区域HTML代码中的属性定义高度和宽度(注:用其属性width和height设置宽度和高度...博文来自:南舟

  引用:介绍本系列博客将主要介绍如今大红大紫的移动Web应用程序...博文来自:weixin_34194379的博客

  在HTML5中,新增大量API来提高应用程序性能,增强用户体验,或者对应用程序现有的功能进行扩展。本文并不针对HTML5中的任何API进行详细介绍,只向大家介绍如何更好地使用这些API来提高我们的We...博文来自:IT新技术

  电脑显示已连接网络但是无internet访问自己电脑不知道出什么问题了,连接到无限网络但是无法访问,一开始以为是自己双系统的问题,然后自己在ubuntu那边是可以正常上网的。下面是自己的解决方法方法一...博文来自:灰羽

  在一次测试中,请求后台数据报net::ERR_CONNECTION_REFUSED的错误。我的这次具体失败的原因是因为请求地址错误的原因。能导致这个问题的原因有很多种,也有可能是网络原因等等….产生这...博文来自:喵大嗷的博客

  文章目录一、导语二、准备工作三、操作步骤1.打开虚拟机并连接vpn2.adb连接3.拷入并执行转发程序4.打开游戏,建立主机四、具体原理五、结语六、附件一、导语元气骑士是一个可以局域网联机的手机游戏,...博文来自:llsixly

  这周因为给朋友的游戏配场景的BGM,没能写什么教程demo(其实就是懒),但是又不能让你们看出我啥也没干,于是就有了这篇应用与优化的话题,同时也是一篇预告贴,下周开始,将会是一期连续的实战个人头像生成...博文来自:weixin_34318326的博客

  解决访问tomcat网页需要用户和密码的问题有时候我们访问,会弹出如下框框,需要用户名和密码这个时候大多数是端口号冲突了,打开安装目录—conf—serve...博文来自:的博客

  照片的规格有1寸、2寸、3寸、5寸、6寸、8寸、10寸,其中1寸照片最为常用,像身份证、驾驶证、港澳通行证、护照、毕业证大多都用是1寸的照片,但这些证件照片对应的尺寸还是有区别的。 裁剪照片,可以用 ...博文来自:打杂人 daza.ren 自述

  前言作为程序员的我们,除了工作上每天要写代码外,星期天的我们也需要适当的放松下自我啦。在家看电影也是个不错的选择。问题如果近期出了我比较喜欢的电影,我会去电影院看外,其他的电影,我一般就是选择在电脑或...博文来自:SimpleSmile_5177

  “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送——只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必...博文来自:C++养成记

  说到安卓手机,越来越多的功能方便了我们日常使用。如投影到高清电视的无线投屏功能、NFC功能,以及与周边设备数据交换的OTG功能。本文重点讲下OTG功能。OTG功能是onthego的简写,让手机等移动设...博文来自:关注IT、科技、数码周边

  如今的APP模板众多,随便套用就能生成一个免费的APP,目前市面上也有众多APP是免费的,比如“今日头条”、“知乎”、”快手”等等,那么这些APP是如何盈利的呢?这里对市场上手机APP产品的隐形盈利方...博文来自:广州天气预报

  txt电子书免费下载全集全本完结小说下载txt电子书免费下载全本博文来自:jxygwt的博客

  很多做过兼职的程序员知道国外的upwork、freelancer等平台,实际如果你尝试过,即使英语挺溜,接国外的单子也是挺难的,主要是各国的实际购买力不一样,如果项目中有印度三哥参与竞标,价格方面你是...博文来自:hujing001的博客

  现在听音乐的软件,QQ音乐,酷狗,网易云等,很多歌曲可以在线听。但是下载某些歌曲或者在线听高品质无损的都需要付费。这一期,给大家推荐的是免费下载付费歌曲工具,包括网站跟APP。  网站篇1.VIP付费...博文来自:丿灬安之若死

  网络选修课超星慕课中职生安全教育(v1)版本的章节测试答案,期末考试答案全部更新了。课程介绍如何保护珍贵的生命,规避不必要的隐患,又如何拥有一个平安和谐的生活,是值得学校深思和重视的问题。《中职生安全...博文来自:jikoujin0531的博客

  专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×\times×1.09=(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。下面就请你写个程序...博文来自:yeternity的博客

  一、单项选择题1D打印机是把电脑里的资料打印到纸上,所以是输出设备。扫描仪、键盘和鼠标都是往电脑里输入东西,是输入设备。2D二进制化八进制:从低位(右)往高位(左),每三位直接换成八进制即可。(100...博文来自:KidsCode小朋友学编程

  今天想给大家推荐一些免费下载破解软件的网站,希望能帮助到大家!第一个要推荐的就CSDN自己的下载资源网站:推荐的原因主要是资源够全,一般网上有的这里...博文来自:喜欢软件博客

  格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。 格式字符有d,o,x,u,c,s,f,e,g等。 如%d整型输出,%ld长整...博文来自:悟-静的博客

  偷偷收藏这5个在线资源网站,第二个BT搜索很强大!好用的网站有那么多,今天给大家分享几个在线资源网站,不管是电影视频、还是图片资源以及办公资源,都应有尽有,肯定有你需要的哦,别告诉别人哦!1、飘花电影...博文来自:Tybyqi的博客

  iamlaosong文为了信息系统安全,上级要求系统使用的移动设备PDA需要注册后才能使用,注册码是移动设备的IMEI码,我查了一下自己的手机小米6,发现有三个码,分别是MEID、IMEI1和IMEI...博文来自:驽马十驾 才定不舍

  在设计 PCB 时,通常会提到 mark 点的设置,它是 SMT 贴片时的参考原点,特别是用到SMD  元器件的时候。在贴片机贴元器件时,为了对准所要贴的位置,所以需要一个参考点, 这就涉及到 MAR...博文来自:LOV2031的博客

  同济七版高数链接:密码:rnsb高数习题全解指南上下册链接:博文来自:cherishlicoolboy的博客

  好记性不如赖笔头…………今天在开发微信小程序时出现了一个问题:net::ERR_NAME_NOT_RESOLVED检查了一下代码,发现是自己的大意造成的。代码如下:app.js中定义了一个全局变量,包...博文来自:ckinghan58 学习工作分享空间

  昨天甲甲推送了一篇文章「微软证实收购Github」,当时还有人不相信我的消息可靠程度,这不昨天晚上微软和GitHub都官方宣布了这件事情,并且收购的价格比我昨天说的50亿......博文来自:一个程序员的日常

  你也可以这样屌到爆的敲代码当黑客!点击选中,你就随便敲吧!旁边的人一定认为:哥们你蓝翔出来的吧!点进去后,按F11键全屏,然后开始装B,瞎按,就是这么牛B…主站博文来自:X-rapido的专栏

  Jackie_Howe:想问一下,前台用toDataURL(image/jpeg)返回的canvas绘制的数据,在服务端怎么用java保存成图片呢?我是按照你讲的原理把这个data URI进行切割了,然后也进行了base64的解码,但是我保存成的图片不能打开,显示“已经损坏”,不知道是哪里出了问题。非常感谢!

  高中不得招借读生:教育部审慎“人籍划分[huá fèn][fèn bié]”

  重度程度的醉酒则是昏迷期:这种程度的醉酒者,主要表现为面颊苍白,口唇呈紫绀色,昏迷不醒,皮肤为湿冷状,同时会有心跳加快或呼吸缓慢,衰竭,大小便失禁等症状,这种程度的醉酒者一定要送医院处理。

  当然,电视媒体现场直播福彩开奖过程,对彩票的销售、开奖、制播提出了更高的要求,事前有关部门要作更充分的准备。事实上,电视媒体现场直播彩票开奖过程,早就是“国际惯例”,香港的“六合彩”彩票的开奖也早已采用现场直播。从我国各种彩票销售方式及电视录制技术看,现场直播开奖过程应该不存在技术性障碍,关键是有关部门要克服多年形成的“心理障碍”。

  中间的福德位上摆放一个大型的玛瑙聚宝盆,然后在各门后、窗前容易通气的地方也摆上相对小的聚宝盆,就能有聚气的效果,能赚、能存。