请各位高手指点,我从服务器下载的图片是37.1KB,下载到客户端变成了1.87M。
          vF = ADPicDir() & "\" & Val("" & nbad(i).nbad_id) & ".jpg"
          url = "http://wb.54695.cn/" & nbad(i).nbad_adpicUrl
          byt() = Inet1.OpenURL(url, icByteArray)
          Picture1.Picture = ShowPictureFromStream(byt)
          SavePicture Picture1.Picture, vF
-------------------------------------------------------------------------------------------------'显示图片
Public Function ShowPictureFromStream(ByRef bPic() As Byte) As StdPicture
    Dim IID_IPicture As GUID
    Dim IStm As stdole.IUnknown, IPic As IPicture
    Dim PicW As Long, PicH As Long
    If CreateStreamOnHGlobal(VarPtr(bPic(0)), 1, IStm) = ERROR_SUCCESS Then
        If CLSIDFromString(StrPtr("{7BF80980-BF32-101A-8BBB-00AA00300CAB}"), IID_IPicture) = ERROR_SUCCESS Then
            If OleLoadPicture(ByVal ObjPtr(IStm), UBound(bPic) + 1, 0, IID_IPicture, IPic) = ERROR_SUCCESS Then
'                PicW = Me.ScaleX(IPic.Width, vbHimetric, vbPixels)
'                PicH = Me.ScaleY(IPic.Height, vbHimetric, vbPixels)
                'IPic.Render CLng(Me.hDC), 0, 0, CLng(PicW), CLng(PicH), 0, IPic.Height, IPic.Width, -IPic.Height, ByVal 0&
                Set ShowPictureFromStream = IPic
            End If
        End If
        Set IStm = Nothing
    End If
    Erase bPic
End Function

解决方案 »

  1.   

    SavePicture   语句 
          从对象或控件(如果有一个与其相关)的   Picture   或   Image   属性中将图形保存到文件中。 语法 SavePicture   picture,   stringexpression SavePicture   语句的语法包含下面部分: 参数   描述   
    picture   产生图形文件的   PictureBox   控件或   Image   控件。   
    stringexpression   欲保存的图形文件名。   
    说明 无论在设计时还是运行时图形从文件加载到对象的   Picture   属性,而且它是位图、图标、元文件或增强元文件,则图形将以原始文件同样的格式保存。如果它是   GIF   或   JPEG   文件,则将保存为位图文件。 Image   属性中的图形总是以位图的格式保存而不管其原始格式。 SavePicture存的就是位图。
      

  2.   

    这样就不会变大vF = ADPicDir() & "\" & Val("" & nbad(i).nbad_id) & ".jpg"
      url = "http://wb.54695.cn/" & nbad(i).nbad_adpicUrl
      byt() = Inet1.OpenURL(url, icByteArray)
      Picture1.Picture = ShowPictureFromStream(byt)
      ' 注意下面
      Open vF For Binary As #1
      Put #1,1,byt
      Close #1
      

  3.   

    SavePicture只能保存为BMP格式,即使你指定了JPG后缀也没用的,格式依然是BMP的,不信你用acdsee之类的看图软件打开图片看格式就知道了.
      

  4.   

    用 OpenURL 方法保存到文件
    如果需要将通过 OpenURL 方法获取的数据保存到文件,可以使用 Open、Put 和 Close 语句,如下面的代码所示。该示例先将获得的二进制文件传入 Byte 数组,然后将该数据保存到磁盘中:Dim strURL As String
    Dim bData() As Byte      '数据变量
    Dim intFile As Integer   '可用文件变量
    strURL = _
    "ftp://ftp.microsoft.com/Softlib/Softlib.e xe"
    intFile = FreeFile()      '将 intFile 设置为未使用的文件
    ' OpenURL 方法的结果首先传入 Byte 数组,
    '然后将 Byte 数组保存到磁盘。
    bData() = Inet1.OpenURL(strURL, icByteArray)
    Open "C:\Temp\Softlib.e xe" For Binary Access Write _ 
    As #intFile
    Put #intFile, , bData()
    Close #intFile