将保存为BMP/JPG的SQL Server的PNG图片
问题描述:
我在我的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?
答
您可能会发现有用
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"
保存到.bmp
或SavePictureToJpg oPic, App.Path & "\MyPhoto.jpg"
为.jpg
并决定可选的质量参数。
你问如何从PNG格式转换为JPG格式? – DaveInCaz