CxImage encode出错的有关问题
CxImage encode出错的问题


Encode过不去...第一次接触cximage,那位大哥知道怎么回事,谢谢指点
4点弄到现在,实在不会,第一次在****发帖,先熟悉一下。(笑)
------解决方案--------------------
建议先确认img->Load是否返回true。
试修改以下3行代码:
TCHAR str[100]; //改 char str[100];
for(int i = 1;i<=32;i++)
{
_stprintf(str,_T("D:\\fire_32\\%d.bmp"),i);//改 sprintf(str,"D:\\fire_32\\%d.bmp",i);
img = new CxImage();
bool r = img->Load(reinterpret_cast<const TCHAR *>(str),CXIMAGE_FORMAT_BMP);//改 img->Load(str,CXIMAGE_FORMAT_BMP);
img->DecreaseBpp(8,false);
在上面最后一行设断点,查看r是否为true。
------解决方案--------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
------解决方案--------------------
我把以下行
for(int i = 1;i<=32;i++)
暂时改为
for(int i = 1;i<=1;i++)
最后正常生成save.gif
我用的是VS2010。
std::vector<CxImage*> m_pimgvec;
CxImage* img;
char str[100];
for(int i = 1;i<=32;i++)
{
sprintf(str,"D:\\fire_32\\%d.bmp",i);
img = new CxImage();
img->Load(str,CXIMAGE_FORMAT_BMP);
img->DecreaseBpp(8,false);
m_pimgvec.push_back(img);
}
CxImage** pimgs;
pimgs = new CxImage*[m_pimgvec.size()];
FILE* pf;
pf = fopen("save.gif","wb+");
pimgs = new CxImage*[m_pimgvec.size()];
for(int i=0;i<m_pimgvec.size();i++)
pimgs[i++] = m_pimgvec.at(i);
CxImage saveimg;
saveimg.Encode(pf, pimgs, m_pimgvec.size(), CXIMAGE_FORMAT_GIF);
fclose(pf);
m_pimgvec.clear();
Encode过不去...第一次接触cximage,那位大哥知道怎么回事,谢谢指点
4点弄到现在,实在不会,第一次在****发帖,先熟悉一下。(笑)
------解决方案--------------------
建议先确认img->Load是否返回true。
试修改以下3行代码:
TCHAR str[100]; //改 char str[100];
for(int i = 1;i<=32;i++)
{
_stprintf(str,_T("D:\\fire_32\\%d.bmp"),i);//改 sprintf(str,"D:\\fire_32\\%d.bmp",i);
img = new CxImage();
bool r = img->Load(reinterpret_cast<const TCHAR *>(str),CXIMAGE_FORMAT_BMP);//改 img->Load(str,CXIMAGE_FORMAT_BMP);
img->DecreaseBpp(8,false);
在上面最后一行设断点,查看r是否为true。
------解决方案--------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
------解决方案--------------------
我把以下行
for(int i = 1;i<=32;i++)
暂时改为
for(int i = 1;i<=1;i++)
最后正常生成save.gif
我用的是VS2010。