我要把bmp黑白二值位图转成emf、wmf,现在转成emf没有问题。但转wmf有问题(本来是黑实心的图形,但转完后,是条图了,图形变大了)。用msdn上的ConvertEMFtoWMF,也是不行(在黑实心的图形中有白条)。
那位有解决的办法,或有成功的例子或源码。
那位有解决的办法,或有成功的例子或源码。
解决方案 »
- API 关于滑动条的使用问题
- 我想做个VC的多语言程序,不知如何下手,请指教
- OPC中的数据转换
- WM_CLIPCHILD什么意思啊?
- 今天被人鄙视了,郁闷!
- 哪位大虾给一个使用CreateProcess()的例子,如调用一个notepad.exe
- 怎样获得google搜索结果的所有链接?
- 请教Lotus Notes的问题?
- 请问哪边能买到《深度探索 C++ 物件模型》这本书,南京没有卖的!一定给分!!!
- 按F5之后黑窗口一闪而过,有什么办法让这个窗口停留下来么
- 我在VC中使用TreeView控件,怎么修改它的属性就能达到资源管理器的功能,至少能列出目录,至于打不打开无所谓?
- 用odbc在向sql 2000中插入记录时,sql 2000掉电,会不会出现update()函数成功,但实际数据没有插入的情况?
HRESULT AnsiToUnicode(LPCSTR pszA, LPOLESTR* ppszW)
{
ULONG cCharacters;
DWORD dwError;
if (NULL == pszA)
{
*ppszW = NULL;
return NOERROR;
}
cCharacters = strlen(pszA)+1;
*ppszW = (LPOLESTR) CoTaskMemAlloc(cCharacters*2);
if (NULL == *ppszW)
return E_OUTOFMEMORY;
if (0 == MultiByteToWideChar(CP_ACP, 0, pszA, cCharacters,*ppszW, cCharacters))
{
dwError = GetLastError();
CoTaskMemFree(*ppszW);
*ppszW = NULL;
return HRESULT_FROM_WIN32(dwError);
}
return NOERROR;
}bool TransBMPToGIF89(LPSTR lpSrcFileName,LPSTR lpDstFileName)//if pass a name fifa.bmp then save as fifa.gif
{
if(lpSrcFileName == NULL || lpDstFileName == NULL)
return false;
using namespace Gdiplus;
CLSID encoderClsid;
Status stat;
LPOLESTR lpwStr;
if(AnsiToUnicode(lpSrcFileName,&lpwStr)!=NOERROR)
return false;
Image* image = Image::FromFile(lpwStr,FALSE);
CoTaskMemFree(&lpwStr);
GetEncoderClsid(L"image/gif", &encoderClsid);
if(AnsiToUnicode(lpDstFileName,&lpwStr)!=NOERROR)
return false;
stat = image->Save(lpwStr, &encoderClsid, NULL);
CoTaskMemFree(&lpwStr);
bool bRet = false;
if(stat == Ok)
bRet = true;
else
bRet = false;
delete image;
return bRet;
}
没有哇!?
if have not success change from bmp->wmf
maybe you should set
GetEncoderClsid(L"image/wmf", &encoderClsid);
那里有下载,我用google没搜到。