【发布时间】:2017-05-21 06:11:08
【问题描述】:
我目前正在尝试弄清楚如何在 CArchive (JPEG) 中正确存储 CImage 文件。我目前的处理方法是以下(伪)代码:
BOOL CPicture::Serialize(CArchive &ar)
{
IStream *pStream = NULL;
HRESULT hr;
CImage *img = GetImage();
if (ar.IsLoading())
{
HGLOBAL hMem = GlobalAlloc(GMEM_FIXED, 54262);
hr = CreateStreamOnHGlobal(hMem, FALSE, &pStream);
if(SUCCEEDED(hr))
{
ar.Read(pStream, 54262);
img->Load(pStream);
pStream->Release();
GlobalUnlock(hMem);
GlobalFree(hMem);
}
}
else
{
hr = CreateStreamOnHGlobal(0, TRUE, &pStream);
if (SUCCEEDED(hr))
{
hr = img->Save(pStream, Gdiplus::ImageFormatJPEG);
if (SUCCEEDED(hr))
ar.Write(pStream, 54262);
}
}
...
我刚刚回到 C++ 并且过去只做了一点点。任何帮助将不胜感激。
非常感谢您。
【问题讨论】:
-
在问答网站上提问通常是个好主意。你没有问一个问题。目前还不清楚您要解决什么问题。你的代码有效吗?您的代码是否失败(如果是,如何失败)?您只需要对您的代码的反馈吗?您是否正在寻找开发人员为您编写代码?还有什么?
标签: c++ image serialization mfc carchive