一个能够把字符串编码成 png 图片,或者从 png 图片中解码出字符串的超轻量级开源库,总代码数甚至不超过 100 行!
通过npm
安装
npm install sphinx.js
通过<script></script>
标签引入
<script src="sphinx.js"></script>
值得注意的是,因为
SphinxJS
使用了 ES2015 的Promise
以及其他很棒的特性,这意味着需要你的浏览器提供支持。否则的话,你可能需要Babel
或者一些别的工具去构建你的代码。
SphinxJS
同时支持以AMD
,CommonJS
以及ES6 模块
的方式进行引用。
定义一个字符串Hello Sphinx!
,我们将对它进行编码
let base64URL = new Sphinx().encode('Hello Sphinx!')
然后你将得到一串base64
编码
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAJklEQVQYV2P0SM35r8K1heE5owcDY2Zexf8dc1Yw/BdjYGBkQAIA+r4JjQKvLx4AAAAASUVORK5CYII=
到这一步,编码便已经完成了。
正如你所看到的那样,encode()
方法返回一张图片的base64
编码。
定义一串图片的 url :
let url = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAJklEQVQYV2P0SM35r8K1heE5owcDY2Zexf8dc1Yw/BdjYGBkQAIA+r4JjQKvLx4AAAAASUVORK5CYII='
然后我们对其进行解码!
new Sphinx().decode(url)
.then((info) => {
console.log(info) // Hello Sphinx!
})
decode()
方法会返回一个Promise
对象,它包含了从图片中解密出来的字符串信息。
new Sphinx()
能够接收一个用于定义图片类型的配置对象
可选
默认值: {img: 'png'}
new Sphinx({img: 'bmp'})
MIT
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.