golang 防知乎 中文验证码 源码

@hwl 文章  2018-07-16 17:23 预计阅读2分钟

原创,转载请注明出处!

最开始用图形来模仿文字进行各种角度的倒立和排列,后来切换为文字后,有很多问题。总结如下:

1、程序在画图形和画文字方面不一样,图形的是从原点开始(0,0),而文字则从文字的基线开始(0,baseline)

2、在增加角度偏移时,文字或图形的高宽会产生变化(偏∠45度时达到最大),这时候为了让它们顶点对齐,需要计算偏移量(用三角函数)

3、在绘图时,会先旋转“画布”(描述可能不准确),再绘制文字。此时要往回旋转,否则下一个图形会顺着这个角度继续画。

4、为了让图形保持固定宽度,对于有偏角的文字,需要平均缩小左右间距(否则不同的角度,固定的文字个数,会让图形宽度不同)

效果图:

 

源码:(代码还可以再整理和优化,但限于计划时间,懒得弄了)

package main

import ( 
					

TOTAL COMMENTS: 0+1

发表评论

点击发布 / 未登录?