#ifndef min *
#define min *
#endif *
#ifndef max *
#define max *
#endif *
#include <atlimage.h>
#undef min *
#undef max*
// 如果不添加*部分会报
c:\program files (x86)\windows kits\10\include\10.0.10586.0\um\gdiplustypes.h(479): error C3861: 'min': identifier not found
c:\program files (x86)\windows kits\10\include\10.0.10586.0\um\gdiplustypes.h(481): error C3861: 'max': identifier not found
// 如上之类的错误
gfx::Image ImageFromLocalGifFile(base::string16 gif_filename) {
gfx::Image image;
CImage img;
if (SUCCEEDED(img.Load(gif_filename.c_str())))
{
DWORD ulBufferLen = 0;
IStream* pOutStream = NULL;
if (CreateStreamOnHGlobal(NULL, TRUE, &pOutStream) == S_OK)
{
img.Save(pOutStream, Gdiplus::ImageFormatJPEG);
HGLOBAL hOutGlobal = NULL;
GetHGlobalFromStream(pOutStream, &hOutGlobal);
LPBYTE pBits = (LPBYTE)GlobalLock(hOutGlobal);
ulBufferLen = (DWORD)GlobalSize(pBits);
char* pBuffer = new char[ulBufferLen + 1];
memset(pBuffer, 0, ulBufferLen + 1);
memcpy(pBuffer, pBits, ulBufferLen);
GlobalUnlock(hOutGlobal);
pOutStream->Release();
image = gfx::ImageFrom1xJPEGEncodedData((const unsigned char*)pBuffer,
ulBufferLen);
delete[]pBuffer;
}
}
return image;
}
// png、gif之类的图片都会加载成功
chromium中从本地加载gif图片
最新推荐文章于 2022-05-28 00:33:07 发布