如何将BYTE *转换为gdi +图像对象?

时间:2008-11-04 04:18:01

标签: image gdi+ byte istream

我想将BYTE *转换为gdi + Image对象。

我怎么能这样做?

BYTE *似乎是Dib点。

我发现Image有一个名为Image :: FromStream()的方法可能会有帮助, 但我找不到任何关于如何将BYTE *转换为IStream对象的参考。 我怎样才能做到这一点?

提前谢谢!

实际上,很难相信MS提供了一个IStream接口,但是没有提供任何实现该接口的c ++ MemoryStream类。

2 个答案:

答案 0 :(得分:2)

CreateStreamOnHGlobal将使用HGLOBAL并为您提供一个IStream指针。您需要使用GlobalAlloc分配足够的内存,然后将BYTE数组复制到HGLOBAL中。

如果您知道您获得的图像数据是GDI DIB,则可以使用GdipCreateBitmapFromGdiDib或相应的Bitmap :: Bitmap构造函数。

答案 1 :(得分:0)

您知道BYTE指针指向的图像数据的格式吗?要使Image能够从流构建自身,数据必须采用支持的标准图像格式之一(GIF,PNG,JPEG等)。

如果没有合适的“内存流”或类似内容,IStream界面看起来很简单,可以自行实现。