android canvas 网络图,【巨坑:toDataURL】canvas合成网络图片

不知有没有小伙伴用过canvas合成图片,然后爆炸

6b8152d1f2b4?5

报错截图

尼玛,然后各种搜索,不外乎以下几种坑爹处理方案:

后端处理,比如Access-Control-Allow-Origin "*"(要是请求到其他网站的图片就不适用了,比如我要请求到微信的图片)

前端处理,比如img.setAttribute('crossOrigin', 'anonymous');

试了下,尼玛还是报错,折腾个半天过去了,下班了,一大早上的在群里问了下,有个大神说和跨域没关系吧 你本地不好测 测试环境可以的

抱着试一试的态度,丢到服务器上,一访问,尼玛,竟然不报错了,我真的是RI

效果图

6b8152d1f2b4?5

效果图

示例代码

canvas合成网络图片

#h {

text-align: center;

}

#h canvas {

border-radius: 10px;

}

$(function () {

var bg = {

width: 340,

height: 500,

src: "https://oimageb5.ydstatic.com/image?id=3493803499422546314&product=adpublish&w=1280&h=720&sc=0&rm=2&gsb=0&gsbd=60"

}

var code = {

width: 100,

height: 100,

src: "./images/kf.jpg"

}

var userInfo = {

name: "嘉成大叔",

width: 170,

height: 170,

src: "http://thirdwx.qlogo.cn/mmopen/BEMV4WOAicktAAllnv9FdJFSU7QYVibMU62ctg7Ie5HiaCuDVCyiapibwrs48N97yrzLel03FvOUqAHEZGfBY5tCdnuHKEg4YvZSC/132"

}

var image = new Image();

var image1 = new Image();

var image2 = new Image();

image.src = bg.src;

image1.src = code.src;

image2.src = userInfo.src;

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

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

image.onload = function () {

ctx.drawImage(image, 0, 0, bg.width, bg.height);

ctx.drawImage(image1, 250, 100, code.width, code.height);

ctx.save();

ctx.arc(185, 200, 65, 0, Math.PI * 2, false);

ctx.clip();

ctx.drawImage(image2, 80, 80, userInfo.width, userInfo.height); // 在刚刚裁剪的园上画图

ctx.restore(); // 还原状态

ctx.font = "36px Georgia";

ctx.fillStyle = '#ffffff';

ctx.fillText(userInfo.name, 270, 250);

var mainImg = new Image();

var imgSrc = canvas.toDataURL('image/png')

mainImg.src = imgSrc;

$('#h').html("");//移除已生成的避免重复生成

$('#h').append(mainImg);

}

})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

水晶报表如何查看sql_有了这个报表工具,一键生成自定义的各种报表,还可以导出Excel...

EasyReport是一个简单易用的Web报表工具,它的主要功能是把SQL语句查询出的数据转换成报表页面, 同时支持表格的跨行(RowSpan)与跨列(ColSpan)配置。 同时它还支持报表Excel导出、图表显示及固定表头与左边列的功能。功能介绍本工具从数据库(MySQL,Oracle,SQLServer,…

Sitemesh3的使用及配置

1 . Sitemesh 3 简介 Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术。参考:百度百科,相关类似技术:Apache Tiles。 官网:http://wiki.sitemesh.org/wi…

鸿蒙系统r如何升级,高歌猛进,鸿蒙系统升级机型再次确认,花粉:终等到!...

虽然华为手机现在的压力非常大,但是在前进的道路上,真的充满了乐观精神,而且现在也算是一路高歌猛进了,发展路线开始加快了许多,无论是新机还是系统,都有着非常多的新消息。因为华为手机的实力很强&#xf…

android studio背景模糊_[Android翻译]CameraX:过去、现在和未来的一瞥

CameraX是一个未捆绑的Android Jetpack库,它可以帮助你在Android应用中轻松添加摄像头功能。传统上,由于Android设备种类繁多,编程模型复杂,在Android上构建具有相机功能的应用程序非常困难。现在成千上万的开发者都在使用CameraX…

export function函数传参_04 js高阶函数(惰性函数、柯里化函数、compose函数)和单例设计模式...

高阶函数的定义在《javascript设计模式和开发实践》中是这样定义的。函数可以作为参数被传递;函数可以作为返回值输出。结合这两个特点,首先想到的肯定是回调函数,回调函数也是高阶函数的一种,除了回调函数,还有很多的…

mysql相关命令操作

2019独角兽企业重金招聘Python工程师标准>>> 远程连接容器中的mysql:mysql -h 192.168.5.116 -P 3306 -u root -p123456 启动mysql容器: $ sudo docker pull mysql:5.6.35 $ sudo docker run --name mysql -p 12345:3306 -e MYSQL_ROOT_PASSW…

html实体注册商标,html 注册商标,html 注册商标代码

html中注册的页面用什么标签写好对于html中的注册页面,策朋专业办理商标注册、专利申请、版权登记保护,需要一个表格。使用标签,输入和按钮标签来组合成就。使用html作为注册页面。实际上,只要您能达到期望的效果,它的…

java已知一个二叉树_#二叉树复习#

#二叉树复习#目录满二叉树完全二叉树平衡二叉树二叉树的主要性质--二叉树的度--二叉树的深度计算二叉树的遍历其他符号变量结点总数深度度为0的结点数/叶子结点数度为1的结点数度为2的结点数什么是满二叉树?二叉树每层的结点数为。满二叉树总结点数:。图…

java 反射机制_基础篇:深入解析JAVA反射机制

反射的概念java 的放射机制:在程序运行时,程序有能力获取一个类的所有方法和属性;并且对于任意一个对象,可以调用它的任意方法或者获取其属性通俗解析:java 文件需要编译成. class 文件才能被 jvm 加载使用, 对象的. c…

html div float center,跨浏览器实现float:center

跨浏览器实现float:center互联网 发布时间:2008-10-17 19:26:11 作者:佚名 我要评论原文:http://www.macji.com/blog/article/to-achieve-cross-browser-css-float-center/to-achieve-cross-browser-css-float-center/我们都知道float…

oracle左连接没用_一周零基础学完Oracle数据库第三天02

四、 多表查询1 什么是多表查询多表查询:当查询的数据并不是来源一个表时,需要使用多表链接操作完成查询。根据 不同表中的数据之间的关系查询相关联的数据。多表链接方式: 内连接:连接两个表,通过相等或不等判断链接列…

weblogic启动项目报错找不到类_启动类报错是经常出现的事但是单一的从一个地方找原因会越找越错...

Error starting ApplicationContext. To display the conditions report rerun your application with debug enabled.当我们看到这个报错的时候有的说是jar包重复,有的说是Controller包和Application包处于平行位置,还有的觉得是RequestMapping的valu…

深入理解javascript原型和闭包(7)——原型的灵活性

在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。 而在javascript中,就没…

c语言为什么有这么多的编程环境?_为什么98%的程序员学编程都会从C语言开始?...

在互联网蓬勃发展的时代,有一类人做出了巨大的贡献,这一群人被大家称之为程序员,怎样才能成为一名优秀的程序员呢,为什么每一个程序员都需要学习C语言呢?就让我来跟大家分享分享:壹第一:相比较其…

Angular 星级评分组件

一、需求演变及描述: 1. 有一个“客户对公司的总体评价”的字段(evalutation)。字段为枚举类型,0-5,对应关系为:0-暂无评价,1-很差,2-差,3-一般,4-好&#xf…

计算机网络怎么查看连接打印机驱动,如何检测网络打印机是否已成功连接到计算机[检测方法]...

大概很多婴儿都像以前的编辑一样. 使用网络打印机时,有时它们可​​以打印打印机没有和电脑连接,有时却不能. 那么如何检测网络打印机是否已成功连接到计算机?跟随编辑器往下看.系统反复提示“无法打印”,因此本来很忙的小修几乎快…

a - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历_数据结构--图

故事凌 今天基本知识点图可说是所有数据结构里面知识点最丰富的一个, 自己笨的知识点如下:阶(oRDER), 度: 出度(out-Degree), 入度(in-Degree)树(Tree), 森林(Forest), 环(Loop)有向图(Directed Graph), 无向图(Undirected Graph), 完全有向图, 完全无向图连通图(Connected Gra…

vim: vimrc

2019独角兽企业重金招聘Python工程师标准>>> 打造vim CIDE http://blog.csdn.net/doc_sgl/article/details/47205779 转载于:https://my.oschina.net/u/2528742/blog/843176

计算机二级考试试题在线看,【TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读材料】...

TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读《2015年全国计算机二级考试试题题库.doc》由会员分享,可免费在线阅读全文,更多与《TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读》相关文档资源请在帮帮文库(www.woc88.com)数…

不用开发实现RDS RDWeb门户美化和个性化

个性化RDWeb界面RDWeb原生界面相对比较简洁,每个企业部署的RDWeb都是千篇一律的,有些用户可能希望将网页装饰得个性化点。在谈到自定义Web界面,第一反应可能是使用代码进行编写,但是这里要和大家分享的是无代码美化和自定义RDWeb界…