博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
canvas toDataURL() 方法如何生成部分画布内容的图片
阅读量:6840 次
发布时间:2019-06-26

本文共 1119 字,大约阅读时间需要 3 分钟。

HTMLCanvasElement.toDataURL() 方法返回一个包含图片展示的  。可以使用 type参数其类型,默认为  格式。图片的分辨率为96dpi。

  • 如果画布的高度或宽度是0,那么会返回字符串"data:,"
  • 如果传入的类型非"image/png",但是返回的值以"data:image/png"开头,那么该传入的类型是不支持的。
  • Chrome支持"image/webp"类型。

语法

  canvas.toDataURL(type, encoderOptions);

参数

  type可选图片格式,默认为 image/png

  encoderOptions可选在指定图片格式为 image/jpeg 或 image/webp的情况下,可以从 0 到 1 的区间内选择图片的质量。如果超出取值范围,将会使用默认值 0.92。其他参数会被忽略。

返回值

  包含  的。

示例

  简单生成图片

var canvas = document.getElementById("canvas");var dataURL = canvas.toDataURL();console.log(dataURL);// "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby// blAAAADElEQVQImWNgoBMAAABpAAFEI8ARAAAAAElFTkSuQmCC"

  设置图片质量

var fullQuality = canvas.toDataURL("image/jpeg", 1.0);// data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ...9oADAMBAAIRAxEAPwD/AD/6AP/Z"var mediumQuality = canvas.toDataURL("image/jpeg", 0.5);var lowQuality = canvas.toDataURL("image/jpeg", 0.1);

  截取canvas部分内容 

  toDataURL() 是将整个canvas的内容导出,很多时候我们只需要截图canvas中的部分内容,这个时候可以通过 getImageData() 复制画布上指定矩形的像素数据,然后通过 putImageData() 将图像数据放回某个设定了图片相同尺寸的新画布中,然后再使用toDataURL()导出图片。

  具体操作代码及效果如下:

 

转载于:https://www.cnblogs.com/fangsmile/p/10095504.html

你可能感兴趣的文章
Spark 1.0 开发环境构建:maven/sbt/idea
查看>>
FreeBSD基金会添加新成员,梁莉成为第一位来自微软和中国的基金会董事
查看>>
Node.js 体验-在Windows Azure工作者角色上托管Node.js
查看>>
Windows Azure-2.5天免费深度技术训练营——面向软件工程师和架构师
查看>>
DNS解析过程详解
查看>>
openGL 坐标系的互相转换
查看>>
linux小技巧(1)
查看>>
软件测试人员需要掌握的linux命令(一)
查看>>
hdu 5212 : Code【莫比乌斯】
查看>>
Django - - 进阶 - - 同源策略和跨域解决方案
查看>>
Android 之 布局训练
查看>>
js正则函数match、exec、test、search、replace、split使用介绍集合
查看>>
Win10隐藏硬盘分区
查看>>
matlab练习程序(Gabor Filter)
查看>>
【SQL Server】系统学习之三:逻辑查询处理阶段-六段式
查看>>
PHP语言 -- 基础
查看>>
GDataXML的一些简单示例。
查看>>
python day08
查看>>
maven 错误处理
查看>>
viewpage的使用
查看>>