我正在执行 dcraw 并使用匿名管道将其通过管道传输到 char 数组。
我的问题是如何Gdiplus::Image
从包含 jpeg 图像的 char 数组创建对象?无需从磁盘写入和读取。
Gdiplus::Bitmap
您可以从IStream
源创建一个。有内置的 Windows API 可以为您执行此操作 - 请参阅CreateStreamOnHGlobal。另一种方法是编写自己的类来实现IStream
.
这是一个用于从内存中CreateStreamOnHGlobal
加载 PNG 资源的示例。
CByteArray byteArr;
//fullfill byteArr
COleStreamFile stream;
if(!stream.CreateMemoryStream(NULL))
{
return;
}
stream.Write(byteArr.GetData(), byteArr.GetSize());
stream.SeekToBegin();
m_pSnapShot.reset(::new Gdiplus::Image(stream.GetStream( )));