2017-04-17 109 views
1

我在我的SQL Server中有一個PNG圖片,我成功獲取圖像並將其保存到文件。將保存爲BMP/JPG的SQL Server的PNG圖片

rs.Open "Select pic from Table", connObj, adOpenDynamic, adLockOptimistic 

If rs.RecordCount > 0 Then 
    If Not IsNull(rs.Fields("pic").Value) Then 
     Set mstream = New ADODB.Stream 
     mstream.Type = adTypeBinary 
     mstream.Open 
     mstream.Write rs.Fields("pic").Value 
     mstream.SaveToFile App.Path & "\MyPhoto.jpg", adSaveCreateOverWrite 
    End If 
End If 
rs.Close 

正如你可以看到我已經有我的分機爲JPG格式,但我不認爲它很重要,當我使用LoadPicture()我得到一個錯誤Invalid Picture使用圖像在我的VB6應用程序。如果我打開圖像並將其保存爲JPG或BMP,LoadPicture()的作品。

那麼,如何正確保存圖片爲bmp/jpg?

+1

你問如何從PNG格式轉換爲JPG格式? – DaveInCaz

回答

2

您可能會發現有用

Private Function LoadPictureFromBlob(baData() As Byte) As StdPicture 
    With CreateObject("WIA.Vector") 
     .BinaryData = baData 
     Set LoadPictureFromBlob = .Picture 
    End With 
End Function 

Private Sub SavePictureToJpg(oPic As StdPicture, sFile As String, Optional ByVal Quality = 80) 
    Const wiaFormatJPEG As String = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}" 
    Dim oImg   As Object 

    SavePicture oPic, sFile 
    Set oImg = CreateObject("WIA.ImageFile") 
    oImg.LoadFile sFile 
    With CreateObject("WIA.ImageProcess") 
     .Filters.Add .FilterInfos("Convert").FilterID 
     .Filters.Item(1).Properties("FormatID").Value = wiaFormatJPEG 
     .Filters.Item(1).Properties("Quality").Value = Quality 
     Set oImg = .Apply(oImg) 
    End With 
    On Error Resume Next 
    Kill sFile 
    On Error GoTo 0 
    oImg.SaveFile sFile 
End Sub 

只需使用Set oPic = LoadPictureFromBlob(rs.Fields("pic").Value)閱讀.png,然後這兩個函數或者使用內置的SavePicture oPic, App.Path & "\MyPhoto.bmp"保存到.bmpSavePictureToJpg oPic, App.Path & "\MyPhoto.jpg".jpg並決定可選的質量參數。