如何产生图片式的验证码? ( 积分: 50 )

  • 主题发起人 主题发起人 xielin
  • 开始时间 开始时间
X

xielin

Unregistered / Unconfirmed
GUEST, unregistred user!
如何产生图片式的验证码?
谢谢了
 
如何产生图片式的验证码?
谢谢了
 
做10个数字对应的图片, 按照规则建立文件名.
例如: 0.jpg,1.jpg....

然后随机生成数字, 对应显示相应的图片了...
 
我是说可不可以随机产生数字(如,2345)然后生成一个图片(固定位置,比如,c:/dd.jpg)。
 
也可以, 在内存中处理图像, 然后保存成文件不就行了?
 
procedure TForm1.FormCreate(Sender: TObject);
var
R: TRect;
begin
R:=Image1.ClientRect;
Image1.Canvas.Brush.Color := clGray;
Image1.Canvas.Pen.Style := psClear;
Image1.Canvas.Pen.Width :=0;
Image1.Canvas.Rectangle(0, 0, R.Right+1, R.Bottom + 1);
Image1.Canvas.Brush.Style := bsSolid;
Image1.Canvas.Font.Style := Image1.Canvas.Font.Style+[fsBold];
R.Left:=R.Left+4;
R.Top:=R.Top+4;
DrawText(Image1.Canvas.Handle, PChar('34234523'), -1, R, DT_LEFT or DT_NOPREFIX or
DT_WORDBREAK or DrawTextBiDiModeFlagsReadingOnly);
Image1.Picture.Graphic.SaveToFile('c:/111.bmp');
end;
 
不知 image.cavans.textout() 方法可不可以, 你試一下!
 
从TGraphicsControl继承下来一个Image,发布出来一个Caption。
 
procedure TForm1.Button1Click(Sender: TObject);
var
R: TRect;
G:TJPEGImage;
B:TBitmap;
begin
B:=TBitmap.Create;
B.Width := 100;
B.Height :=22;
B.Canvas.Font.Name := '宋体'; //输出文字样式 自己设
B.Canvas.Font.Size := 9;
B.Canvas.Font.Charset := GB2312_CHARSET;
B.Canvas.Rectangle(0,0,100,22);
B.Canvas.TextOut(5,5,'53453535634'); //验证码生成方式自己定
B.SaveToFile('c:/111.bmp');
G:=TJPEGImage.Create;
G.Assign(B);
G.SaveToFile('c:/111.jpg');
G.Free;
B.Free;
end;
 
kouchun,说详细一点
 
Avalon,可不可以对你写的两个程序加上详细的注释阿。。。。。
新人,,,看不懂[:D]
 
多人接受答案了。
 
后退
顶部