canvas导出图片方法总结

html代码

<canvas id="canvas" width="100" height="100" ></canvas>

js 代码

var canvas=document.getElementById("canvas");

var ctx=canvas.getContext("2d");

ctx.fileStyle="gray";

ctx.fillReact(0,0,100,100);

1.直接调用canvas对象的toDataURL方法转化为指定类型

var newImg = new Image();

newImg.src=canvas.toDataURL("image/png"));

2.利用canvas对象的toBlob方法

先通过toBlob将canvas对象转化为二进制对象,通过参数形式传入函数,然后利用URL.createObjectURL方法根据传入的参数创建一个指向该参数blob对象的url,然后把url赋给img的src属性即可

canvas.toBlob && canvas.toBlob(function(blob) {

  var url = URL.createObjectURL(blob);

  var newImg = new Image();

  newImg.onload = function() {

    URL.revokeObjectURL(url)

  };

  newImg.src=url;

};

URL.revokeObjectURL()方法会释放一个通过URL.createObjectURL()创建的对象URL. 当你要已经用过了这个对象URL,然后要让浏览器知道这个URL已经不再需要指向对应的文件的时候,就需要调用这个方法.

具体的意思就是说,一个对象URL,使用这个url是可以访问到指定的文件的,但是我可能只需要访问一次,一旦已经访问到了,这个对象URL就不再需要了,就被释放掉,被释放掉以后,这个对象URL就不再指向指定的文件了.

比如一张图片,我创建了一个对象URL,然后通过这个对象URL,我页面里加载了这张图.既然已经被加载,并且不需要再次加载这张图,那我就把这个对象URL释放,然后这个URL就不再指向这张图了.

时间: 2024-12-14 18:08:50

canvas导出图片方法总结的相关文章

PHP Excel表格导出图片方法

1.进入PHP Excel官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里. 2.查看解压文件是否有PHPExcel_Worksheet_Drawing图片文件类. 3.创建一个excel.php文件,开始编写PHP Excel到出. 实例代码: <?php /** * PHP Excel表格导出图片方法 * 2015-07-30 巴亚云 */ function ExcelCustomers(){ /*引入phpexcel核心类文件*/ includ

【小程序】--------------处理canvas导出图片模糊问题-------------【劉】

一.业务需求: 使用canvas在前端生成海报,并在海报上添加上水印.最后导出图片并保存到本地. 二.业务逻辑实现: (1)创建canvas画布======>(2)在canvas上绘制海报========>(3)绘制水印===========>(4)绘制完成,导出图片路径=========>(5)保存到本地,并可以分享,(长按保存图片) 三.代码实现: (1).创建画布并将图片和水印绘制到canvas上const ctx = wx.createCanvasContext('myCa

利用canvas 导出图片

使用canvas绘制图片,并将图片导出. 将不同域下图片绘制到canvas上时,不能使用toDataURL来获取imgdata,因为 canvas 使用了没有权限的跨域图片在使用canvas.toDataURL()等数据导出函数的时候会报错! img.crossOrigin = "Anonymous" ,它开启了本地的跨域允许.当然服务器存储那边也要开放相应的权限才行,如果是设置了防盗链的图片在服务端就没有相应的权限的话你本地端开启了权限也是没有用的. function downloa

图片转换成文字并导出的方法

一般我们如果想要把一张图片转换成文字,最常用的方法就是对照着图片将里面的文字手动敲打出来.但是,大家都知道,如果图片上的文字太多了话,手动敲打文字这种方法就不适用了.现在给大家分享一个简单的方法,将图片转换成文字并导出,用手机就可以轻松实现.一.准备工作:将需要识别的文字用手机拍照,如果是网上的资料.文章,可截屏保存,如果是图片上的文字,可直接保存图片.二.找到"迅捷文字识别"这个OCR文字识别工具这是一个可以识别图片上的文字的手机应用,可以将图片上的长篇文字很快识别成文本,在手机上的

HTML5 file API加canvas实现图片前端JS压缩并上传 (转载)

一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅,同时大大降低了网络异常导致上传失败风险. 最最重要的体验改进点:省略了图片的再加工成本.很多网站的图片上传功能都会对图片的大小进行限制,尤其是头像上传,限制5M或者2M以内是非常常见的.然后现在的数码设备拍摄功能都非常出众,一张原始图片超过2M几乎是标配,此时如果用户想把手机或相机中的某个得意图片

canvas压缩图片

1.canvas.toDataUrl压缩图片 canvas的toDataUrl方法可以将内容导出为base64编码格式的图片,采用base64编码将比源文件大1/3,但是该方法可以指定导出图片质量,所以前端可实现上传图片的压缩.先通过fileApi拿到本地图片地址,然后新建一个Img元素,图片绘制到canvas中后再将其导出(压缩).例如: $(':file').on('change',function(){         var file = this.files[0];         v

快速解决Canvas.toDataURL 图片跨域的问题

出现Canvas.toDataURL 图片跨域问题怎么解决呢?下面小编就为大家带来一篇Canvas.toDataURL 图片跨域问题的快速解决方法.一起跟随小编过来看看吧 如题,在将页面的图片地址进行本地输出时(Html2Canvas.js),因不同源存在跨域问题,会出现toDataURL访问权限问题: [Redirect at origin 'http://sub1.xx.com' has been blocked from loading by Cross-Origin Resource S

fusioncharts批量导出图片之后自动提交表单

最近一个项目  一个页面有多个fusioncharts,需要将他们一次性导出之后再利用图片做一下操作,制作一个可以客户下载的质检简报. 对客户效果来说,我只需要点击一个按钮就能生成简报并且下载,对开发人员来说就需要,先将图片导出(当然不能挨个导出,要同时执行导出,因为fusioncharts导出太慢了),要确认全部导出了才能提交表单,要不然提交表单之后,图片没有生成出来必然产生异常.下面我们来看一下实现 首先我给每一个fusionchartschart指定一个有规律的id,作用有两个: 一个是导

赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印

上一篇已经介绍了Android种Bitmap和Canvas的使用,下面我们来写一个具体实例 http://blog.csdn.net/zhaoyazhi2129/article/details/32136179 运行效果: 主要代码 package com.example.guaguale; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import and