我正在使用 MySQL++ API 从 MySQL 数据库中提取图像。我将图像作为 mysqlpp::sql_mediumblob 获取,它是字符串的表示形式。现在我想使用 GDI+ 旋转一些图片,但我不知道如何使用这个构造函数:
Image::Image(IStream*,BOOL) - Creates an Image object based on a stream.
与保存在 blob 中的图像。提前致谢。
如此处所述:http: //msdn.microsoft.com/en-us/library/aa378980 (VS.85).aspx
HGLOBAL hMem = ::GlobalAlloc(GMEM_MOVEABLE,iSize);
if (!hMem)
AfxThrowMemoryException();
LPVOID pImage = ::GlobalLock(hMem);
... // Fill memory pointed by pImage, reading it from MySQL
::GlobalUnlock(hMem);
// Convert internal data if there is any
CComPtr<IStream> spStream;
HRESULT hr = ::CreateStreamOnHGlobal(hMem,FALSE,&spStream);
然后将 spStream 传递给 Gdiplus::Image 构造函数。