取Session("ValidateCode")即可获得图像验证码并进行对比
1
Imports System.Drawing
2
Partial Class WebService_VimageClass WebService_Vimage
3
Inherits System.Web.UI.Page
4
Dim letterMatrix() As String = {"A", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "2", "3", "4", "5", "6", "7", "8", "9"}
5
6
Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
7
Dim Instance As Random = New Random()
8
9
Dim ls As String
10
Dim i As Integer
11
For i = 0 To 4
12
Dim id As Integer = Instance.Next(0, letterMatrix.Length - 1)
13
ls = ls & letterMatrix(id)
14
Next
15
Session("ValidateCode") = ls
16
GenImg(ls)
17
18
19
End Sub
20
Private Sub GenImg()Sub GenImg(ByVal code As String)
21
Dim timer As Date
22
Dim myPalette As Bitmap = New Bitmap(170, 50)
23
Dim gh As Graphics = Graphics.FromImage(myPalette)
24
Dim rc As Rectangle = New Rectangle(0, 0, 170, 50)
25
gh.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
26
gh.FillRectangle(New SolidBrush(Color.SteelBlue), rc)
27
Dim i As Integer
28
Dim Instance As Random = New Random()
29
Dim sc As String = ""
30
For i = 0 To 4
31
If Instance.Next(0, 3) = 2 Then
32
sc = sc & code(i) & " "
33
Else
34
sc = sc & code(i)
35
End If
36
Next
37
gh.DrawString(sc, New Font("微软雅黑", 25, FontStyle.Bold), New SolidBrush(Color.White), 5, 5)
38
' gh.DrawLine(Pens.SteelBlue, 0, 15, 100, 15)
39
myPalette = MH(myPalette)
40
gh.DrawImage(myPalette, 0, 0, myPalette.Width + Instance.Next(1, 40), myPalette.Height + Instance.Next(1, 5))
41
For i = 0 To Instance.Next(5, 10)
42
gh.DrawLine(Pens.White, Instance.Next(10, 150), Instance.Next(10, 40), Instance.Next(10, 150), Instance.Next(10, 40))
43
Next
44
gh.SmoothingMode = Drawing2D.SmoothingMode.None
45
For i = 0 To 20
46
gh.DrawLine(Pens.SteelBlue, Instance.Next(10, 150), Instance.Next(10, 40), Instance.Next(10, 150), Instance.Next(10, 40))
47
Next
48
' gh.DrawString(Format(Date.Now.Subtract(timer).TotalMilliseconds, "0.000") & "ms", New Font("Arial", "8"), Brushes.Black, 0, 30)
49
myPalette.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
50
gh.Dispose()
51
myPalette.Dispose()
52
End Sub
53
Function MH()Function MH(ByVal myPalette As Bitmap) As Bitmap
54
On Error Resume Next
55
Dim Instance As Random = New Random()
56
Dim MHb As Bitmap = myPalette
57
Dim i, j As Short
58
Dim Rx, Ry As Short
59
Dim X, Y As Integer
60
X = myPalette.Width
61
Y = myPalette.Height
62
For i = 1 To Y
63
For j = 1 To X
64
Rx = Instance.Next(2, 4)
65
Ry = Instance.Next(2, 4)
66
Dim col As Color = myPalette.GetPixel((j) + Ry, (i) + Rx)
67
MHb.SetPixel(j, i, col)
68
Next
69
70
Next
71
MH = MHb
72
End Function
73
74
75
End Class
76

2


3

4

5

6


7

8

9

10

11

12

13

14

15

16

17

18

19

20


21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53


54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76
