woo语言生成验证码例子:
看代码:
local dc = woo.gd:new()
local W = 160
local H = 50
dc:create(W, H)
-- 红绿蓝取值 0-1(0-255)
dc:setRGB(0, 0, 0)
--dc:setRGB255(255,255,255)
dc:clear()
-- 随机数种子
_rand(_time())
-- 随机设置绘制的颜色
local rgba = function()
local r = _rand()
local g = _rand()
local b = _rand()
local a = _rand() * 0.5 + 0.5
dc:setRGBA(r, g, b, a)
end
for i = 0, 10 do
local x1 = _rand() * W
local y1 = _rand() * H
local x2 = _rand() * W
local y2 = _rand() * H
local w = _rand() * 4 + 1
rgba()
dc:setLineWidth(w)
dc:drawLine(x1, y1, x2, y2)
dc:stroke()
end
if _os() == 'windows' then
-- windows系统下使用的字体绝对路径
dc:loadFontFace("C:\\Windows\\Fonts\\arial.ttf", 28)
else
-- unix系统,请设置对应的字体绝对路径
--dc:loadFontFace("***", 28)
end
-- 设置随机数种子
math.randomseed(_time())
local qstr = ''
for i = 1, 4 do
-- 随机取大小写字母
qstr = _chr(_rand() < .5 and math.random(65, 90) or math.random(97, 122))
dc:drawString(qstr, W / 5 * i, H / 2 + 10)
rgba()
end
-- png文件保存到桌面gd.png
local path = _home() .. '/Desktop/gd.png'
dc:savePng(path)
-- 保存图片完毕后,打开该图片,服务器不能打开,请下载后查看
-- _show(path)