用bmp保存图片太大了,我能不能直接取得当前PictureBox中的内容(gif,jpg),并将其进行base64编码?(不将图片保存在本地硬盘)!
解决方案 »
- 请问为什么用 order by newid() 随机产生记录的时候,那些image字段不为空的记录无法被检索出来?
- 如何在webbrowser中执行javsscript代参数的脚本
- HTTP协议中各项排列顺序问题
- vb如何调用dll文件
- 想在DATA1中插入一条记录怎么加 , 我看RECORDSET只有ADDNEW方法没有插入的。
- 急~~高手来帮帮我~~vb+access+sql查询语句的问题!
- str() 和 str$()
- 可否动态添加Activex Dll,而事先不在设计时引用。
- 极简单个VB问题,解决多多给分。
- 请问哪儿有InstallShield(真正)中文版,可以做出金山词霸.net的安装效果。
- 数据库中怎么判断某一个字段没填?
- 有熟悉图形的吗?如何保存为JPG文件
http://expert.csdn.net/Expert/topic/2864/2864789.xml?temp=.310589
两位老兄帮个忙!!多谢了
项目:JPEG图片压缩程序(1/5)
作者:zyl910
E-Mail:[email protected]
'可以从http://www.mvps.org/emorcillo/vb6/tlb/tl_ole.zip下载文件,下载后解压,并注册、引用olelib.tlb
Option ExplicitConst GMEM_MOVEABLE = &H2
Const GMEM_ZEROINIT = &H40
Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As LongConst PictureID = &H746C&Private Type PictureHeader
Magic As Long
Size As Long
End Type
Public Sub Picture2Array(ByVal oObj As StdPicture, aBytes() As Byte)
Dim oIPS As IPersistStream
Dim oStream As IStream
Dim hGlobal As Long
Dim lPtr As Long
Dim lSize As Long
Dim Hdr As PictureHeader
Set oIPS = oObj
Set oStream = CreateStreamOnHGlobal(0, True)
oIPS.Save oStream, True
hGlobal = GetHGlobalFromStream(oStream)
lSize = GlobalSize(hGlobal)
lPtr = GlobalLock(hGlobal)
If lPtr Then
lSize = lSize - Len(Hdr)
ReDim aBytes(0 To lSize - 1)
MoveMemory aBytes(0), ByVal lPtr + Len(Hdr), lSize
End If
GlobalUnlock hGlobal
Set oStream = NothingEnd Sub
Public Function Array2Picture(aBytes() As Byte) As StdPicture
Dim oIPS As IPersistStream
Dim oStream As IStream
Dim hGlobal As Long
Dim lPtr As Long
Dim lSize As Long
Dim Hdr As PictureHeader
Set Array2Picture = New StdPicture
Set oIPS = Array2Picture
lSize = UBound(aBytes) - LBound(aBytes) + 1
hGlobal = GlobalAlloc(GHND, lSize + Len(Hdr))
If hGlobal Then
lPtr = GlobalLock(hGlobal)
Hdr.Magic = PictureID
Hdr.Size = lSize
MoveMemory ByVal lPtr, Hdr, Len(Hdr)
MoveMemory ByVal lPtr + Len(Hdr), aBytes(0), lSize
GlobalUnlock hGlobal
Set oStream = CreateStreamOnHGlobal(hGlobal, True)
oIPS.Load oStream
Set oStream = Nothing
End If
End Function
Private Sub Command1_Click()
Dim buff() As Byte
Picture2Array Picture1.Picture, buff
'测试
Set Picture2.Picture = Array2Picture(buff)
End Sub
绝对精典项目:JPEG图片压缩程序
作者:zyl910
E-Mail:[email protected]