canvas画布导出图片并下载
近期在学习关于画布知识,关于 画布导出图片,
在导出jpeg格式的图片时,会发现图片背景色变成了黑色,原因是画布透明的地方 默认转成了黑色,可以在绘制画布前设置透明处背景色为白色。
// 背景色转换成白色
ctx.fillStyle = "#fff";
ctx.fillRect(0, 0, c.width, c.height);
<!-- 一个画布在网页中是一个矩形框,通过 <canvas> 元素来绘制. -->
<!-- HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. -->
<!-- <canvas> 标签只是图形容器,您必须使用脚本来绘制图形。 -->
<canvas id="canvas"></canvas>
<button class="button-balanced" id="save">转换</button>
<a href="" download="canvas_love.jpeg" id="save_herf">
<img src="" id="save_img" alt=""> </a>
        var c = document.getElementById("canvas");
        function drawLove(canvas) {
            let ctx = canvas.getContext("2d");
            ctx.beginPath();
            // 背景色转换成白色
            ctx.fillStyle = "#fff";
            ctx.fillRect(0, 0, c.width, c.height);
            // ctx.drawImage(img, 0, 0);
            ctx.fillStyle = "#E992B9";
            ctx.moveTo(75, 40);
            ctx.bezierCurveTo(75, 37, 70, 25, 50, 25);
            ctx.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5);
            ctx.bezierCurveTo(20, 80, 40, 102, 75, 120);
            ctx.bezierCurveTo(110, 102, 130, 80, 130, 62.5);
            ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25);
            ctx.bezierCurveTo(85, 25, 75, 37, 75, 40);
            ctx.fill();
       }
        drawLove(c);
        var butSave = document.getElementById("save");
        console.log(butSave)
         butSave.onclick = function () {
            // alert('123')
            var svaeHref = document.getElementById("save_herf");
            /*
             * 传入对应想要保存的图片格式的mime类型
             * 常见:image/png,image/gif,image/jpg,image/jpeg
             */
            var img = document.getElementById("save_img");
            var tempSrc = canvas.toDataURL("image/jpeg");
            // console.log(tempSrc)
            svaeHref.href = tempSrc; // a 标签的 href 地址
            img.src = tempSrc;
        };
CanvasRenderingContext2D 接口提供的 2D 渲染背景用来绘制<canvas>元素,为了这个接口的对象,需要在 <canvas> 上调用 getContext() ,并提供一个 "2d" 的参数:
toDataURL()这个方法能把画布里的图案转变成base64编码格式的png,然后返回 Data URL数据
canvas画布导出图片并下载的更多相关文章
- 微信小程序--canvas画布实现图片的编辑
		
技术:微信小程序 概述 上传图片,编辑图片大小,添加文字,改变文字颜色等 详细 代码下载:http://www.demodashi.com/demo/14789.html 概述 微信小程序--ca ...
 - canvas.toDataURL 画布导出图片
		
<html> <meta http-equiv="X-UA-Compatible" content="chrome=1"> <he ...
 - js将canvas保存成图片并下载
		
<canvas id="canvas" width="400" height="400"></canvas> < ...
 - 基于Vue的v-charts导出图片并下载
		
依赖 npm install file-saver 页面 <ve-chart ref="chart"></ve-chart> <el-button t ...
 - 将canvas画布内容转化为图片(toDataURL(),创建url)
		
将canvas画布内容转化为图片(toDataURL(),创建url) 总结 1.现在的浏览器都支持右键另存为图片的方法来将canvas画布内容转化为图片 2.在代码里面可以通过toDataURL() ...
 - [技术博客]海报图片生成——小程序canvas画布
		
目录 背景介绍 canvas简介 代码实现 难点讲解 圆角矩形裁剪失败之PS的妙用 编码不要过硬 对过长的文字进行截取 真机首次生成时字体不对 drawImage只能使用本地图片 背景介绍 目标:利用 ...
 - 微信小程序 canvas导出图片模糊
		
//保存到手机相册save:function () { wx.canvasToTempFilePath({ x: , y: , width: , //导出图片的宽 height: , //导出图片的高 ...
 - js 画布与图片的相互转化(canvas与img)
		
使用js将图片拷贝进画布 //将图片对象转化为画布,返回画布function ImageToCanvas(image) { var canvas = document.createElement(&q ...
 - html页面、canvas导出图片
		
背景:项目现场提出将一个html做的图形页面导出为一张图片的需求,在网上搜了一下,发现都不是很全面,所以综合了很多大神的帖子,自己再次封装,以适用项目需求. 所需js库:html2canvas.js( ...
 
随机推荐
- C 编译器的“贪心法”
			
C语言中有单字符符号和多字符符号之分,那么,当C编译器读入一个字符‘/’后又跟了一个字符‘*’,那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是合起来作为一个符号对待.C语言对这个问题的解 ...
 - 学习记录:@Transactional 事务不生效
			
测试时使用spring boot2.2.0,在主类中调用,@Transactional 不起作用,原代码如下: @SpringBootApplication @Slf4j @Component pub ...
 - Windows——关于Word2016/2019提示需要修复问题处理
			
一.问题描述 打开Word提示 很抱歉此功能看似已中断,并需要修复.请使用Windows控制面板中的“程序和功能”选项修复Microsoft Office. 二.解决方法 运行 regedit 进入注 ...
 - PHP面向对象简易验证码类
			
PHP简易验证码类 <?php class authCode { private static $instance = null; #实例对象 private $width = 120; #图片 ...
 - 【leetcode】973. K Closest Points to Origin
			
题目如下: We have a list of points on the plane. Find the Kclosest points to the origin (0, 0). (Here, ...
 - 分块——cf1207F
			
这么傻逼的题当时想了那么久 用a数组维护原序列,b[i][j]表示 pos%i=j 的 a[pos]之和 对于每个修改1 x y,先直接修改a[x],然后枚举i=1..700,修改b[i][x%i] ...
 - bzoj1001 [ICPC-Beijing 2006]狼抓兔子
			
我满心以为本题正解为最短路,结果到处都是最大流…… 几乎所有的都写了什么“对偶图”跑最短路,但我真的不知道什么叫做对偶图---------------------------------------- ...
 -  导致页面顶部空白一行
			
模板文件生成html文件以后会在页面body开头处生成可见的控制符 导致页面头部出现一个空白行,导致这样的原因就是页面的编码格式是UTF-8 + BOM 解决方法,最简单的就是使用编辑器重新保存文件 ...
 - css定位的理解
			
在CSS中关于定位的内容是:position:relative | absolute | static | fixed ● static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行 ...
 - DNS排查技术图谱
			
# DNS排查技术图谱 ## 应用程序视角- 应用程序 - 浏览器 - hostname cache - ping- 操作系统 - hostname cache - 域名解析器 - dig domai ...