首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

为什么用 GdipCreateBit地图FromStream 取数据库里的图片VB会挂掉

2012-12-31 
为什么用 GdipCreateBitmapFromStream 取数据库里的图片VB会挂掉?WinXPVB6+SP6access 数据库-------------

为什么用 GdipCreateBitmapFromStream 取数据库里的图片VB会挂掉?
WinXP
VB6+SP6
access 数据库
-------------------------------------------------
我希望将数据库中的图片直接显示处理

Dim ADO_Stream As new ADODB.stream
ADO_Stream.type = adTypeBinary
ADO_Stream.Open

Call ADO_Stream.Write(rst.Fields("Photo").value)
'## Call Stream.LoadFromFile(strFileName)

Dim GH As Long
Dim BH As Long
Dim bmW As Long
Dim bmH As Long
            
GdipCreateFromHDC Me.hDC, GH
GdipCreateBitmapFromStream ADO_Stream, BH         到这里VB直接挂掉 Why ???
            
GdipGetImageWidth BH, bmW
GdipGetImageHeight BH, bmH
GdipDrawImageRectI GH, BH, 0, 0, bmW, bmH

------------------------------------------

Public Declare Function GdipLoadImageFromStream Lib "GdiPlus" (ByVal stream As Any, Image As Long) As GpStatus

[解决办法]
应该跟GdipLoadImageFromStream无关,将流保存到磁盘试试能不能打开由流生成的图片文件。
[解决办法]
所谓的流其实就是字节数组,你使用二进制方式打开文件,然后把图片数据放到字节数组,再调用GdipCreateBitmapFromStream试试。
[解决办法]
这两个流是两码事,楼主不分东西啊。
要这样用的:
dim StreamObject As IUnknown  '或 Istream

    Call CreateStreamOnHGlobal(b(0), False, StreamObject)
    Call GdipLoadImageFromStream(StreamObject, img)

其中b() 中包括的就是你的整个图片文件内容。
[解决办法]
楼上解答应该是正确的,楼主不妨试一下。
[解决办法]
http://download.csdn.net/source/1483930

热点排行