打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
将canvas元素中的图像转换为jpg等格式的Blob对象

本文通过一个示例来介绍如何将canvas元素中的图像转换为jpg等格式的Blob对象。

示例页面的HTML 5代码部分如下所示。

<body onload="init();"><canvas id="canvas" width="400" height="300" /><a id="download" download="image.jpg">下载图像</a></body>

示例页面的script脚本代码部分如下所示。

<script type="text/javascript">function init(){    /***    绘制canvas元素中的图像    ***/    var canvas = document.getElementById("canvas");      if (canvas == null)          return false;      var context = canvas.getContext('2d');      context.fillStyle = "#EEEEFF";      context.fillRect(0, 0, 400, 300);      var n = 0;     for(var i = 0; i < 10; i++)     {          context.beginPath();          context.arc(i * 25, i * 25, i * 10, 0, Math.PI * 2, true);          context.closePath();          context.fillStyle = 'rgba(255, 0, 0, 0.25)';          context.fill();      }       var type = 'image/jpeg';    //将canvas元素中的图像转变为DataURL    var dataurl = canvas.toDataURL(type);    //抽取DataURL中的数据部分,从Base64格式转换为二进制格式    var bin = atob(dataurl.split(',')[1]);    //创建空的Uint8Array    var buffer = new Uint8Array(bin.length);    //将图像数据逐字节放入Uint8Array中    for (var i = 0; i < bin.length; i++) {        buffer[i] = bin.charCodeAt(i);    }    //利用Uint8Array创建Blob对象    var blob = new Blob([buffer.buffer], {type: type});    var url = window.URL.createObjectURL(blob);    document.getElementById("download").href=url;}</script> 

在上述代码中,实现了将canvas元素的图像转换为jpg格式的Blob对象的处理。如果将type属性值修改为“image/png”,可以将图像转换为其他格式的Blob对象。如果使用window.URL.createObjectURL方法,则可以获取引用该图像的URL,代码如下所示。

var url = window.URL.createObjectURL(blob);

可以通过将某个超链接元素的href属性值设置为该URL的方法将图像下载,代码如下所示。

document.getElementById("download").href=url;

如果要将canvas元素中的图像转换为DataURL,则必须使用canvas元素的toDataURL方法,在该方法中可以使用一个参数,用于指定图像格式,代码如下所示。

canvas.toDataURL('image/jpeg') 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
HTML5裁剪图片并上传至服务器实现原理讲解
在浏览器端用H5实现图片压缩上传
了解 JS 压缩图片,这一篇就够了
JavaScript多文件下载
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
HTML5 Canvas API中drawImage()方法的使用实例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服