公司刚刚处于创业初期,总是会尝试着做一些新奇的东西。尤其是对于网上一些好玩的东西,总是希望自己也能有一样的功能。不得不说,对于我来说,既是种机遇,也是种挑战。因为这样给了我足够的发展空间,可以按着自己想的去实现功能,可以去选择一些优秀的框架来学习和使用。不过,对于我这样经验还不够的人来说,该怎么选择,也是一种挑战。

  不过,说实在的,我还是挺喜欢这样的日子的。老板总是会有些稀奇古怪的想法,来促使着我的成长。就像这次的要说的大楼表白,在老板第一次提起说要做这个功能的时候,我整个人都不是很好,这都是个什么需求???先拿个已有的成品来说吧。

  在看到网上大楼表白的时候,在老板看来还挺好玩的,就问我说能不能做个这个。看到这个图片我的第一反应是:简单,不就是输入个文字嘛。然后,等我做的时候我发现,好像理想跟现实差距有点大。直接用html加css实现出来的文字根本不是这个效果。尤其是这个文字,仔细看会发现,这不是普通的文字,而是LED灯光效果的文字,到这个时候我才发现这个需求好像并没有我想的那么简单,尤其是做出来的内容是需要当成图片保存下来的。

  如果不是因为有后面那个需求的话,我根本是想不到canvas的。因为前端似乎没有什么图片生成器,除了现在出的特别厉害的canvas。可能是我才疏学浅,可能还有什么其他的功能,不过我能想到的也就canvas了。不过这次我主要想写的并不是怎么来做这个大楼表白,因为有了这个想法之后,实现起来已经是很简单了,麻烦的只是调样式而已。如果有兴趣的人可以私信我要源码。

  这次要说的是用canvas实现另一个功能,跟之前的类似,实现的是图片的合成的功能,要实现图中二维码的替换。

  这里用canvas合成图片的功能的话网上一抓一大把,我这里就不多提了。我这次遇到的问题是,我在我的微信端不管怎么样都生成不了图片了,而在微信调试工具里面确是一点问题都没有。这个问题出的是真的不讲道理,于是我去复制之前大楼表白的代码,发现还是不行,于是我尝试着把把canvas导出出来,发现canvas的确生成了,可是就是卡死在生成图片这一步了,可是在我的微信调试工具中确是一点问题都没有。所以说写代码最怕的不是出错,而是你明明写的好像是对的,而且明明在调试的时候也是可以的,然而就是在实际测试的时候怎么都出不来结果。没办法,只能把所有的都推翻从0开始。于是我从新建了个文件夹,想着换个浏览器调试一下试试看。果然,问题出现了。他终于报错了!!!我这个欣慰啊,总算是知道他是错的了。于是我就想着去百度去查这个bug,然后发现,国内的查不到。。。不死心的我去下载了个FQ软件,没想到还真让我查到了个国外有个跟我错的差不多的哥们,也是canvas导图片失败在求助。然后继续往下翻,总算是找到原因了,他那回复的原文是

  You have an image in your canvas that is gotten from a different domain, and that means your canvas is tainted with cross-origin resources.

  这句话真是一语点醒梦中人啊,虽然我英语并不是很好,但是我凭我直觉来说,他在告诉我,canvas跨域了。然后我再去查关于canvas跨域的解决方案。网上给出的解决办法是把图片下载到本地,然后在生成图片。这个的话就要靠后端工程师配合了,不过最后来说,这个功能是实现了。

  这个随笔感觉真的写的好随意,代码都没有,算是写一写最近的状态吧,整个人迷迷糊糊的,很早想写这篇博客了,可是总是在拖,发现拖着拖着这个状态都没有了。写出来的博客跟当时想的完全不一样。就当一次教训吧,也给自己立个flag。从今以后做事不会再这么拖沓了,希望以后能分享出更高含金量的好文章。

canvas随笔的更多相关文章

  1. CANVAS实现调色板 之 我的第一个随笔

    主题代码 <canvas id="color"></canvas> <script> var color=document.getElement ...

  2. Kinect开发随笔①——红外扫描仪(Kinect 数据源)

    来源于 MVA 的 快速入门:Kinect for Windows v2 开发 的学习随笔 具体内容为上图所示章节内容 章节内全部代码:GitHub地址点我(链接失效,待补档) <Page &l ...

  3. HTML5随笔

    1 首先介绍一下html5,以及为什么用html5, HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定. HTML5的设计目的是为了在移动设备上支持多媒体.HTM ...

  4. 【canvas系列】用canvas实现一个colorpicker

    每个浏览器都有自己的特点,比如今天要做的colorpicker就是,一千个浏览器,一千个哈姆雷特,一千个colorpicker.今天canvas系列就用canvas做一个colorpicker. ** ...

  5. 移动端 canvas插入多张图片生成一张可保存到手机图片

    第一次写随笔,想把开发中遇到的问题与大家分享,可能会让您少走一步弯路. 先看下效果图: 代码分三部分为大家展示: 1.html 部分 <div id="myQrcontainer&qu ...

  6. canvas 从初级到XX 1# 部分非基础原生API的使用 [初级向]

    标题canvas 从初级到XX,XX是因为本文随机都可能会太监,并不会支持到入土.请慎重的往下看. 对于canvas的介绍,随处都可以找到,也就不啰嗦太多了.就直奔主题了. 先看一段代码,以及实现的效 ...

  7. canvas 从初级到XX 2# 让我们在之前的基础之上,再迈进一步吧 [中级向] (上)

    还是老样子,先啰嗦一点前言. 最近各种事务缠身,所以也就隔了比较长的时间才开始码这篇文.希望不会这么快就过气. 好了,接下来就开始码代码.(写到中途,突然感觉到的.本篇设计大量初中物理知识,请怀念的往 ...

  8. 03_HTML Canvas第一天

    视频来源:麦子学院 讲师:刘慧涛 w3cshool之HTML5画布:http://www.w3school.com.cn/html5/html_5_canvas.asphtml5 canvas参考手册 ...

  9. canvas实现3D魔方

    摘要:使用canvas实现可交互的3D魔方 一.简单分析 魔方物理性质: 1.中心块(6个):中心块与中心轴连接在一起,但可以顺着轴的方向自由的转动. 2.棱块(12个):棱块的表面是两个正方形,结构 ...

随机推荐

  1. 让php Session 存入 redis 配置方法

    首先要做的就是安装redis 安装方法:http://redis.io/download Installation Download, extract and compile Redis with: ...

  2. HDU-2573-Typing

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2573 这题把%s与gets()的输入法搞混了一直感觉没有错,就是找不出哪里错了, 题目思路不是很难. ...

  3. jQuery克隆DOM节点

    jQuery克隆DOM节点 <%@ page language="java" import="java.util.*" pageEncoding=&quo ...

  4. jQuery如何实现点击页面获得当前点击元素

    获得jquery对象: function foo(e){ var obj = $(e.target); }

  5. 你真的懂ajax吗?

    前言 总括: 本文讲解了ajax的历史,工作原理以及优缺点,对XMLHttpRequest对象进行了详细的讲解,并使用原生js实现了一个ajax对象以方便日常开始使用. damonare的ajax库: ...

  6. jmeter测试计划

    测试计划配置 用户定义的变量: 测试计划上可以添加用户定义的变量.一般添加一些系统常用的配置.如果测试过程中想切换环境,切换配置,一般不建议在测试计划上添加变量,因为不方便启用和禁用,一般是直接添加用 ...

  7. Redis key 相关命令

    其实本质上,Redis 就是一个Key---Value 数据库.这里我先介绍下Redis中关于的key的相关命令, 注意:key是字符串存储,但是不能使用 空格 或者 “\n”,value 则可以使用 ...

  8. ArcGIS10.2直连PostgreSQL存在问题

    现象: 将下载到的libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, ssleay32.dll文件拷贝到Desktop 安装目录的bin目录 ...

  9. js如何判断一个变量是否是数组?

    //方法一 var arr = [1,2,3]; var obj = {'name': 'xiaoming','age': 19}; if(arr.constructor == Array){ ale ...

  10. [html5] 学习笔记-html5音频视频

    HTML5 最大的新特色之一就是支持音频和视频.在 HTML5 之前,我们必须使用插件如 Silverlight  或 Flash 来实现这些功能.在 HTML5 中,可以直接使用新标签< au ...