显示图片的关键代码是别人的。我只是稍加整理。
直接看代码:
把byte数组中的字节流放入到pictureBox控件中的函数:
忘了这位高手的名字了,转自vbgood~~~~~~
Private Declare Function GdipCreateFromHDC Lib "GdiPlus" (ByVal hdc As Long,graphics As Long) As Long Private Declare Function GdipDeleteGraphics Lib "GdiPlus" (ByVal graphics As Long) As Long Private Declare Function GdipDrawImage Lib "GdiPlus" (ByVal graphics As Long,ByVal image As Long,ByVal x As Single,ByVal y As Single) As Long Private Declare Function GdipdisposeImage Lib "GdiPlus" (ByVal image As Long) As Long Private Declare Function Gdiplusstartup Lib "GdiPlus" (token As Long,inputbuf As GdiplusstartupInput,Optional ByVal outputbuf As Long = 0) As Long Private Declare Sub GdiplusShutdown Lib "GdiPlus" (ByVal token As Long) Private Declare Function GdipLoadImageFromStream Lib "GdiPlus" (ByVal Stream As Long,ByRef image As Long) As Long Private Declare Sub CreateStreamOnHGlobal Lib "ole32.dll" (ByRef hGlobal As Any,ByVal fDeleteOnRelease As Long,ByRef ppstm As Any) Private Type GdiplusstartupInput Gdiplusversion As Long DebugEventCallback As Long SuppressBackgroundThread As Long SuppressExternalCodecs As Long End Type Public Sub DrawBytesToPictureBox(ByRef PictureData() As Byte,ByRef picBox As PictureBox) Dim GpInput As GdiplusstartupInput Dim token As Long,GdiDC As Long,StreamObject As Long,img As Long GpInput.Gdiplusversion = 1 Gdiplusstartup token,GpInput GdipCreateFromHDC picBox.hdc,GdiDC CreateStreamOnHGlobal PictureData(0),StreamObject GdipLoadImageFromStream StreamObject,img GdipDrawImage GdiDC,img,0 GdipdisposeImage img GdipDeleteGraphics GdiDC GdiplusShutdown token End Sub
通过xmlhttp获得图片。
显示校验码的代码:
Dim x As Object urlPic = "http://ptlogin2.qq.com/getimage" Set x = CreateObject("Microsoft.XMLHTTP") x.Open "GET",urlPic,False x.Send l = x.getResponseHeader("Content-Length") ReDim picary(l) Call coverByteArray(x.responseBody) CheckPic.Refresh Call DrawBytesToPictureBox(picary,CheckPic)
将图片转换字节数组中:
Sub coverByteArray(vIn) For i = 0 To LenB(vIn) - 1 picary(i) = vIn(i) Next i End Sub
看效果图: