带图片的彩色二维码生成

某天同事来找我,说有个朋友开发了一套带图片的彩色二维码生成技术,问我对于商业化的方案有没有什么建议,还有之前有一家国外的公司做这个的,被阿里投资了,所以现在淘宝管理后台就可以直接生成这种技术,还发了一个网站过来,国内的一家公司,把这个东西称为“三维码”,对个人卖300块一个码,对企业卖800块一个码。

虽然两年多前就见过这种码,对于它是怎么生成的确实没怎么关心,但既然支持传统的扫码方案和设备,那说明它本身还是个标准的二维码。于是就尝试搜索了一下,结果,就TMD找到了四个开源项目。前两个生成出来的图片中间有横竖两条黑白间隔的线,我还以为是必须保留的二维码关键标识,但后面的两个项目生成出来的就没有,漂亮多了。

于是下载了Python版本的代码,测试了一下效果,然后读了一遍Java版和Python版的代码,开始动手写一个自己的C#版。

写的过程中遇到了一些问题,主要是Python里面用到的二维码生成的qrencode包和图像处理的Image包,直接使用了其中的一些方法,而且有一些参数直接固化了,比如box_size=3, version=5,还有像图像的convert(‘L’)这种。一个一个去搜索这个方法的实现,然后修改了C#版的二维码生成库的源码,支持手动选择version和box_size参数,然后实现自己的图片转灰度算法,基本上就直接匹配了Python代码的流程。顺便优化掉了他的代码里的一些重复生成图像和处理的过程,整体效率高了不少,生成过程不会明显等待了。

然后做了个简单的winform客户端,加了个设置保护区域可以防止人脸被盖住的功能,就完工了。

差不多就是这种效果:

新玩具-树莓派3

被销售同事忽悠,买了个树莓派3 Model B玩一下。记录一下安装步骤,以免忘记。

1、设备到手,安装好散热片,外壳,风扇。因为同时买了官方摄像头模块,还有个电子纸屏幕模块,一起安装。摄像头插入到标准接口里,电子纸屏幕按照官方Demo项目里的README插上对应的8个针脚。

2、官网下载Lite版Raspbian系统,无桌面的,Mac下用软件Etcher把镜像写入到TF卡。把卡插进设备里,通电启动。通电前要连接HDMI显示器,启动后再连接就不会有输出了。

3、连接USB键盘,用默认用户名pi密码raspberry登录进去。启用WIFI:修改/etc/wpa_supplicant/wpa_supplicant.conf,在最后添加:

network={
ssid=“WIFI名称“
psk=”WIFI密码“
}

保存重启,就会连上WIFI,启动过程最后界面上会显示本机IP地址。(PS:可以写多段network,自动识别连接多个WIFI)

4、再用键盘登录进去,sudo raspi-config,在几个选项下面分别启用ssh,启用camera,启用spi。然后重启。应该就可以在别的电脑上用ssh连接进去了。

继续阅读“新玩具-树莓派3”

坑爹的微信支付官方文档

微信支付的官方文档里的代码,原样复制过来,所有参数用官方的库生成好,传递到页面上,进入支付页面以后,没有任何反应。就是这个文档:

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6

搜索了一下有不少提这个问题,还有人说iOS里没反应,安卓可以。也有人说这个支付接口是第一代接口,实际已经不起作用了,现在都要使用第二代接口,也就是这个文档:

http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

于是费了老半天劲把代码改成了这个方式,支付过程中多调了两个接口,多生成了一套加密参数,终于成功了。

今天同事用微信开发工具调试了一下原来那个代码,发现坑爹的事情是,官方示例代码里面所有的冒号都是全角的,于是直接脚本错误了……

一个一个改成半角冒号,支付对话框就弹出来了……

微信,你还能再坑一点吗?

CentOS 7.2 Yum安装部署Nginx+PHP+Mysql/MariaDB+Nodejs+Django生产环境

内容取自网络,根据自己的实践总结整理。

1、更新系统应用。

yum update

2、安装开发工具包。

yum groupinstall "Development Tools"

3、安装MariaDB,启动,并设为开机自启动服务。

yum -y install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb

4、初始化数据库。

mysql_secure_installation

根据命令提示完成Mysql数据库和root用户的初始化操作。
继续阅读“CentOS 7.2 Yum安装部署Nginx+PHP+Mysql/MariaDB+Nodejs+Django生产环境”