关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍

今天是圣诞夜,有多少小伙伴是出去过节了呢?当然肯定有更多的小伙伴是等着和TJ君一起分享圣诞夜的编码快乐!

既然是圣诞夜,那我们今天怎么也要聊聊和圣诞有关的东西,对不对?

那么你以为TJ君要给你介绍如何编写一个圣诞树?

嗯点子不错,不过似乎太简单了?好吧好吧,TJ君肯定不会让小伙伴们失望,拿出一个压箱底的好东东~~~

js2image

这是一个神奇的开源项目,有多神奇呢?它可以把js源代码压缩成一个ascii字符画的源代码的工具,就像这个样子:

不要小看它哦,被压缩后的代码可还是直接可以运行的哦!

如果您正在学习Spring Boot,那么推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/

安装依赖

# Ubuntu
$ sudo apt-get install graphicsmagick# Fedora
$ sudo dnf install GraphicsMagick# OS X
$ brew install graphicsmagick# Chocolatey (package manager for Windows)
# (Restart of cmd/PowerShell is required)
$ choco install graphicsmagick

不过要注意的是,js2image有一点小局限,就是暂时不支持windows系统(看作者的更新频率可能后面也不会支持了T_T),并且需要图片不能透明、要是白底。

使用

在Node.js中,可按如下命令进行安装:

$ npm install js2image --save

具体的使用方法如下:

var Js2Image = require('js2image');var image = './resource/tree.png';
var source = './resource/jquery.js';
var target = './target/xmas.js';
var options = {};// 获取结果的code
var sourceCode = fs.readFileSync(source);
Js2Image.getCode(sourceCode, image, options).then(function (code) {// code为生成的代码console.log(code);
})// 或者直接写入文件
Js2Image.writeToFile(source, image, target, options).then(function (code) {// 生成的代码已被写入到文件target// code为生成的代码console.log(code);
});

根据作者的思路,js2image的实现思路有三个步骤:

  • 1、使用现成已有的库来生成图片的字符画。

  • 2、将目标的js代码进行分割,然后将分割的代码分块装入第一步的字符画里。(分割的原理是将js源码解构成一个数组)

  • 3、对于那些不能分开的js语法,特别需要注意要特殊处理,保存在一起。(难点在于如何提取出所有,记住是所有,不可分割的语法)

具体的核心思路,在作者的代码里都实现啦,感兴趣的小伙伴,赶紧来一探究竟!圣诞夜让我们把代码都变成圣诞树吧!代码地址如下:

点击下方卡片,关注公众号“TJ君”

回复“圣诞快乐”,获取仓库地址

我新开个号,准备分享一些有趣见闻和思考

感兴趣的小伙伴可以关注一下

圣诞夜,让你的代码都变成圣诞树吧!相关推荐

  1. 圣诞夜表白代码!看你答不答应

    公众号[走神研究所]回复[表白]获取网站 这里有棵会动的圣诞树来帮助你表白噢! 圣诞节马上要到了,不知道有没有和你一起过节的人呢? 还没有?没关系,看看这个圣诞夜表白代码,发给你心仪的人,伴着音乐和动 ...

  2. 计算机发展红火,为何女性却越来越少?一场圣诞夜的反思

    热点追踪 / 深度探讨 / 实地探访 / 商务合作 文/赵家鹏 1816年的圣诞夜,诗人拜伦给一位密友寄去了一封信. 信中附有他新作的一首诗,这首诗名为<路德分子之歌>,后来成为了拜伦的代 ...

  3. 【Unity3D Shader编程】之五 圣诞夜篇 Unity中Shader的三种形态对比 混合操作合辑

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  4. 洛谷 P1454【圣诞夜的极光】

    题目背景 圣诞夜系列~~ 题目描述 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光. 轰隆隆--烟花响起(来自中 ...

  5. 疯狂圣诞夜,带你探寻那些吃喝玩乐的好去处……

    叮叮当,叮叮当,铃儿响叮当,嘿!圣诞节马上要来啦!!! 步入节日季以来,多家酒店纷纷举办圣诞点灯仪式,装潢大堂,为圣诞开篇. 北京雁栖酒店 海口鲁能希尔顿酒店 成都尼依格罗酒店 华丽丽的圣诞点灯,香喷 ...

  6. 2022圣诞代码合集(圣诞树+圣诞老人)

    文章目录 前言 使用方法 圣诞树 圣诞老人 前言 圣诞节里的喜悦,飘扬万里:圣诞树上的星星,璀璨耀眼:圣诞星空绽放的烟花,迎来吉祥:圣诞钟声奏响的旋律,传递欢乐:圣诞老人送给你的礼物,是我最衷心的祝福 ...

  7. 一夜之间全世界的WIFI都不安全了;阿里和京东线下争夺的新场景:加油站|ServiceHot一周热闻

    一夜之间全世界的WIFI都不安全了:阿里和京东线下争夺的新场景:加油站......以下为您奉上更多热点事件. 一夜之间全世界的WIFI都不安全了? 传闻用于保护无线路由器和联网设备不被入侵的 WPA2 ...

  8. 优秀的代码都是如何分层的?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://t.cn/RdrmI7i 1.背景 说起应用分 ...

  9. 优秀的 Java 项目代码都是如何分层的?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://rrd.me/ej56f 1.背景 2.如何进 ...

最新文章

  1. android配置activity
  2. C语言中“数组名”和“数组名”
  3. OpenGL material light材质灯光的实例
  4. LeetCode算法入门- Remove Element -day20
  5. 办公自动化-数据库的增删改查操作-mysql-0223
  6. 《编程原本 》一2.2 轨道
  7. 徐中约与《中国近代史》 (zz)
  8. 临时上传的文件-20170707
  9. [转]BVH文件介绍
  10. CentOS 6.8 编译安装MySQL5.5.32
  11. DMA映射 dma_addr_t
  12. 软件测试面试常用Linux命令总结
  13. 如何释放计算机的ip地址,电脑执行释放DNS和更新IP的命令是什么?怎么执行
  14. 杰理之AUDIO_DAC【篇】
  15. Jacob 操作 outlook 发邮件 遍历文件夹邮件 移动邮件
  16. SAN存储的配置与管理
  17. 【总结】知识点巩固------Linux命令总结
  18. canal_deployer、canal_adapter碰到的问题
  19. 网站中PV、UV、IP的区别
  20. 设计模式十四(中介者模式)

热门文章

  1. linux和aix设置时间
  2. eAccelerator(eacc)安装配置笔记
  3. BoneCP学习笔记——配置参数
  4. curl 忽略证书访问 https
  5. docker容器 与 系统时间同步
  6. Linux Shell 命令--tr
  7. Android 如何退出程序
  8. UNIX中的文件和目录
  9. 一个帖子学会Android开发四大组件
  10. linux服务器部署.net,Linux服务器部署.Net Core笔记:三、安装.NetCore运行环境