导航:首页 > 文件处理 > vb图片压缩

vb图片压缩

发布时间:2024-05-28 10:52:59

① 请问怎么vb压缩图片,内详

'图片压缩处理程序,可以实现高压缩!
'注JPG压缩比值为1-255
Public Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Public Type GdiplusStartupInput
GdiplusVersion As Long
DebugEventCallback As Long
SuppressBackgroundThread As Long
SuppressExternalCodecs As Long
End Type
Public Type EncoderParameter
GUID As GUID
NumberOfValues As Long
type As Long
Value As Long
End Type
Public Type EncoderParameters
count As Long
Parameter As EncoderParameter
End Type

Public Declare Function GdiplusStartup Lib "GDIPlus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As Long
Public Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long
Public Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hPal As Long, BITMAP As Long) As Long
Public Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long
Public Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal FileName As Long, clsidEncoder As GUID, encoderParams As Any) As Long
Public Declare Function CLSIDFromString Lib "ole32" (ByVal Str As Long, id As GUID) As Long
Public Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb As Long) As Long

'*************************************************************************
'** 作 者 : laviewpbt
'** 函 数 名 : SavePic
'** 输 入 : pic(StdPicture) - 图象句柄
'** : FileName(String) - 保存路径
'** : Quality(Byte) - JPG图象质量
'** : TIFF_ColorDepth(Long) - TTF格式的颜色深度
'** : TIFF_Compression(Long) - TTF格式的压缩比
'** 输 出 : 无
'** 功能描述 : 把图象保存为JPG、TIFF、PNG、GIF、BMP格式
'** 日 期 :
'** 修 改 人 : laviewpbt
'** 日 期 : 2005-10-23 14.43.52
'** 版 本 : Version 1.2.1
'*************************************************************************
Public Sub SavePic(ByVal pict As StdPicture, ByVal FileName As String, PicType As String, _
Optional ByVal Quality As Byte = 80, _
Optional ByVal TIFF_ColorDepth As Long = 24, _
Optional ByVal TIFF_Compression As Long = 6)
Screen.MousePointer = vbHourglass
Dim tSI As GdiplusStartupInput
Dim lRes As Long
Dim lGDIP As Long
Dim lBitmap As Long
Dim aEncParams() As Byte
On Error GoTo ErrHandle:
tSI.GdiplusVersion = 1 ' 初始化 GDI+
lRes = GdiplusStartup(lGDIP, tSI)
If lRes = 0 Then ' 从句柄创建 GDI+ 图像
lRes = GdipCreateBitmapFromHBITMAP(pict.Handle, 0, lBitmap)
If lRes = 0 Then
Dim tJpgEncoder As GUID
Dim tParams As EncoderParameters '初始化解码器的GUID标识
Select Case PicType
Case ".jpg"
CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
tParams.count = 1 ' 设置解码器参数
With tParams.Parameter ' Quality
CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .GUID ' 得到Quality参数的GUID标识
.NumberOfValues = 1
.type = 4
.Value = VarPtr(Quality)
End With
ReDim aEncParams(1 To Len(tParams))
Call CopyMemory(aEncParams(1), tParams, Len(tParams))
Case ".png"
CLSIDFromString StrPtr("{557CF406-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
ReDim aEncParams(1 To Len(tParams))
Case ".gif"
CLSIDFromString StrPtr("{557CF402-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
ReDim aEncParams(1 To Len(tParams))
Case ".tiff"
CLSIDFromString StrPtr("{557CF405-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
tParams.count = 2
ReDim aEncParams(1 To Len(tParams) + Len(tParams.Parameter))
With tParams.Parameter
.NumberOfValues = 1
.type = 4
CLSIDFromString StrPtr("{E09D739D-CCD4-44EE-8EBA-3FBF8BE4FC58}"), .GUID ' 得到ColorDepth参数的GUID标识
.Value = VarPtr(TIFF_Compression)
End With
Call CopyMemory(aEncParams(1), tParams, Len(tParams))
With tParams.Parameter
.NumberOfValues = 1
.type = 4
CLSIDFromString StrPtr("{66087055-AD66-4C7C-9A18-38A2310B8337}"), .GUID ' 得到Compression参数的GUID标识
.Value = VarPtr(TIFF_ColorDepth)
End With
Call CopyMemory(aEncParams(Len(tParams) + 1), tParams.Parameter, Len(tParams.Parameter))
Case ".bmp" '可以提前写保存为BMP的代码,因为并没有用GDI+
SavePicture pict, FileName
Screen.MousePointer = vbDefault
Exit Sub
End Select
lRes = GdipSaveImageToFile(lBitmap, StrPtr(FileName), tJpgEncoder, aEncParams(1)) '保存图像
GdipDisposeImage lBitmap ' 销毁GDI+图像
End If
GdiplusShutdown lGDIP '销毁 GDI+
End If
Screen.MousePointer = vbDefault
Erase aEncParams
Exit Sub
ErrHandle:
Screen.MousePointer = vbDefault
MsgBox "在保存图片的过程中发生错误:" & vbCrLf & vbCrLf & "错误号: " & Err.Number & vbCrLf & "错误描述: " & Err.Description, vbInformation Or vbOKOnly, "错误"
End Sub

把以上的代码复制到模块

② vb鏂囦欢铡嬬缉涔嫔悗锲剧墖涓嶈佷简

vb鏂囦欢铡嬬缉涔嫔悗锲剧墖涓嶈佷简铡熷洜濡备笅銆
1銆佸洜涓哄帇缂╂枃浠跺す閲岀殑锲剧墖琚鎹熷潖浜嗭纴瀵艰嚧锲剧墖涓嶈佷简銆
2銆佸洜涓哄帇缂╂枃浠跺す閲岀殑锲剧墖镙煎纺涓嶆g‘锛屽艰嚧锲剧墖涓嶈佷简銆

③ VB压缩图片的问题!

不管原格式是什么,vb 读取、截图后,保存的图片都是 bmp 格式。
可以这样转变为 JPG 格式:用 windows 自带的画图程序打开文件,然后单击文件菜单的“另存为”,保存类型选 JPEG ,最后单击保存就可以了。

④ 如何用VB把JPG格式的"大图片"压缩成视频,谢谢!

Private Sub Command1_Click() '搜索
Dim strtemp As String '定义变量为字符串型,
Dim a As String '定义变量为字符串型
Dim i As Integer '定义变量为整值
strtemp = Trim(Text1.Text) ' 初始变量Strtemp 等于文本框中的内容 ,也就是要搜索的内容
For i = 0 To List1.ListCount - 1 '循环 列表框里的内容
a = List1.List(i) '把每项内容赋值给变量A
If InStr(a, strtemp) > 0 Then '判断,当在列表项中找到搜索的关键字,那么
List1.Selected(i) = True '该项被选中

阅读全文

与vb图片压缩相关的资料

热点内容
简述编译程序以及解释程序 浏览:1
linux升级kernel 浏览:174
入侵服务器挖矿是什么罪 浏览:44
房屋解压资料丢了怎么办 浏览:806
java文件行读写 浏览:544
影城网上售票系统源码 浏览:634
防疫就是命令歌曲 浏览:204
滴滴号码加密怎么解除 浏览:844
模具编程的职责 浏览:944
华为ssh改加密算法 浏览:149
文件夹空白合同 浏览:763
pythonwebpy开发 浏览:671
不是c编译器的有 浏览:662
win10压缩包下载 浏览:905
逆战手机app怎么样 浏览:948
自嗨自我解压图片 浏览:397
电子书导入kindle哪个文件夹 浏览:420
pythontcpserver性能 浏览:546
linux文件夹改名 浏览:566
单片机开发板是什么 浏览:853