Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Type Gdiplusstartupinput
Gdiplusversion As Long
DeBUGEventCallback As Long
SuppressBackgroundThread As Long
SuppressExternalCodecs As Long
End Type
Private Type EncoderParameter
GUID As GUID
NumberOfValues As Long
type As Long
Value As Long
End Type
Private Type EncoderParameters
count As Long
Parameter As EncoderParameter
End Type Private Declare Function Gdiplusstartup lib "GDIPlus" (token As Long,inputbuf As Gdiplusstartupinput,Optional ByVal outputbuf As Long = 0) As Long
Private Declare Function GdiplusShutdown lib "GDIPlus" (ByVal token As Long) As Long
Private Declare Function GdipCreateBitmapFromHBITMAP lib "GDIPlus" (ByVal hbm As Long,ByVal hPal As Long,BITMAP As Long) As Long
Private Declare Function GdipdisposeImage lib "GDIPlus" (ByVal Image As Long) As Long
Private Declare Function GdipSaveImagetofile lib "GDIPlus" (ByVal Image As Long,ByVal filename As Long,clsIDEncoder As GUID,encoderParams As Any) As Long
Private Declare Function CLSIDFromString lib "ole32" (ByVal Str As Long,ID As GUID) As Long
Private Declare Function copyMemory lib "kernel32" Alias "RtlMoveMemory" (Dest As Any,Src As Any,ByVal cb As Long) As Long
2、BMP转换JPG Dim Quality As Byte
Dim TIFF_colorDepth As Long
DimTIFF_Compression As Long
Screen.MousePointer = vbHourglass
Dim tSI As Gdiplusstartupinput
Dim lRes As Long
Dim lGDIP As Long
Dim lBitmap As Long
Dim aEncParams() As Byte
Dim pict As StdPicture
On Error GoTo ErrHandle:
Quality=80
TIFF_colorDepth=24
TIFF_Compression=6
pict=Picture1.Picture
tSI.Gdiplusversion = 1
lRes = Gdiplusstartup(lGDIP,tSI)
lRes = GdipCreateBitmapFromHBITMAP(pict.Handle,lBitmap)
Dim tJpgEncoder As GUID
Dim tParams As EncoderParameters
CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"),tJpgEncoder
tParams.count = 1
With tParams.Parameter ' Quality
CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"),.GUID
.NumberOfValues = 1
.type = 4
.Value = VarPtr(Quality)
End With
ReDim aEncParams(1 To Len(tParams))
Call copyMemory(aEncParams(1),tParams,Len(tParams)) 上面的程序是将Picture1中的图像,转换成JPG的一个方法,最终我们得到了一个JPG的数组,当然,你可以随便处理,也可以存放为文件,也可以另作处理。 大家看利用这个方法作图形格式的转换和VB本身有关系吗? 钟声 2009-7-7
原文链接: http://www.jb51.cc/article/p-hbmdijam-qm.html 总结
以上是内存溢出为你收集整理的VB无所不能之二:利用GDI+处理图像格式转换全部内容,希望文章能够帮你解决VB无所不能之二:利用GDI+处理图像格式转换所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)