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

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

  在看到网上大楼表白的时候,在老板看来还挺好玩的,就问我说能不能做个这个。看到这个图片我的第一反应是:简单,不就是输入个文字嘛。然后,等我做的时候我发现,好像理想跟现实差距有点大。直接用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. C语言strstr()函数:返回字符串中首次出现子串的地址

    今天又学到了一个函数 头文件:#include <string.h> strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:    char *strstr( char *s ...

  2. 【翻译】使用Visual Studio在Azure上部署Asp.Net Core Web应用

    配置运行环境 Install the latest Azure SDK for Visual Studio. The SDK installs Visual Studio if you don't a ...

  3. Bloom Filter的基本原理和变种

    学习一个东西首先要知道这个东西是什么,可以做什么,接着再了解这个东西有什么好处和优势,然后再学习他的工作原理.下面我们分别从这三点简单介绍一下bloom filter,以及和他的变种. What:在允 ...

  4. windows10 subsystem(bash) 如何使用jupter notebook

    按照传统惯例,应该映射端口jupyter notebook --port=15000,然后用浏览器开http://localhost:15000/ 但是当你运行python的时候,居然发现kernel ...

  5. 关于我的PP0.1聊天软件(客户端)

    登陆界面: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data ...

  6. Hadoop学习笔记-001-CentOS_6.5_64_连接外网设置

    参考:http://blog.csdn.net/u010270403/article/details/51444677 虚拟机中共五个centos系统,每个系统有两个用户root和hadoop:cdh ...

  7. ubuntu下php编译

    1.安装依赖 sudo apt-get install libjpeg-devsudo apt-get install libxml2-devsudo apt-get -y install libjp ...

  8. vue-router跳转页面

    小结放在前:先祝大家新年快乐!鸡年大吉大利!在新的一年里大家都有跳跃般的成长!作为新年的第一篇文章,就拿他来给大家拜个年!!!文章前部份讲解了vue-router路由的配置,后半部分为去年的文章vue ...

  9. MYSQL:基础—存储过程

    MYSQL:基础-存储过程 快速入门 理解: 迄今为止,我们学过的大多数SQL语句都是针对一个或多个表的单条语句.但是并不是所有的操作都是可以用一条语句来完成的,经常有一些操作是需要多条语句配合才能完 ...

  10. js阻止表单提交的两种方法

    下面直接看代码. <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...