目前位置: VCer资源中心 >>> VCer论坛 >>> 技术问答

[本帖已阅读1894次 分值2 回复1次] 张贴资源 发回信箱 控制面板

请问:用intel的ijl库函数老是出错(MEMORY LEAK)

提供者:rojam 张贴时间:2004-08-06 20:59:15.0 出处:vcer.net 作者:不祥

请问:用intel的ijl库函数老是出错(MEMORY LEAK)(2004-08-06 20:59:15.0)


rojam


 
级别: VCer小兵
头衔: VCer会员

经验: 62
作品: 3
分会: 华北分会
注册: 2004-08-05 22:07:08.0
登录: 2004-08-10 09:13:40.0

///////ijl中函数RGB压缩到缓冲区///////////////

bool EncodeToJpgBUFFER(

  BYTE* lpRgbBuffer,//in

  DWORD dwWidth,//in

  DWORD dwHeight,//in

  BYTE** lppJpgBuffer,//out

  DWORD* lpdwJpgBufferSize)//out

 {

  bool bres;

  IJLERR jerr;

  DWORD dwRgbBufferSize;

  BYTE *lpTemp;

  JPEG_CORE_PROPERTIES jcprops;

  bres=true;

  jerr=ijlInit(&jcprops);

  if(IJL_OK!=jerr)

  {

   OutputDebugString("ijlInit³õʼ»¯´íÎó");

   bres=false;

   goto err_process;

  }

  dwRgbBufferSize=dwWidth*dwHeight*3;

  lpTemp=NULL;

  lpTemp=new BYTE[dwRgbBufferSize];

  if(NULL==lpTemp)

  {

   OutputDebugString("·ÖÅäÁÙʱ»º³åÇølpTempʧ°Ü");

   bres=false;

   goto err_process;

  }

  jcprops.DIBWidth=dwWidth;

  jcprops.DIBHeight=dwHeight;

  jcprops.DIBBytes=lpRgbBuffer;

  jcprops.DIBPadBytes=0;

  jcprops.DIBChannels=3;

  jcprops.DIBColor=IJL_RGB;

  jcprops.JPGWidth=dwWidth;

  jcprops.JPGHeight=dwHeight;

  jcprops.JPGFile=NULL;

  jcprops.JPGBytes=lpTemp;

  jcprops.JPGSizeBytes=dwRgbBufferSize;

  jcprops.JPGChannels=3;

  jcprops.JPGColor=IJL_YCBCR;

  jcprops.JPGSubsampling=IJL_411;

  jcprops.jquality=75;

  jerr=ijlWrite(&jcprops,IJL_JBUFF_WRITEWHOLEIMAGE);

  if(IJL_OK!=jerr)

  {

   char szDebug[256];  

   sprintf(szDebug, "JPEGѹËõʧ°Ü:%d, Width:%d, Height:%d", jerr, jcprops.JPGWidth,

jcprops.JPGHeight);

   OutputDebugString(szDebug);

   bres=false;

   goto err_process;

  }

     *lppJpgBuffer=lpTemp;

     *lpdwJpgBufferSize=jcprops.JPGSizeBytes;

     ijlFree(&jcprops);

err_process:

  if(false==bres)

     {

      if(NULL!=lpTemp)

      {

       delete[] lpTemp;

       lpTemp=NULL;

      }

     }

 

 return bres;

 }

注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/2921.html

  如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:) vcer.net捐赠

[回复该贴] [加入个人书签]

re:请问:用intel的ijl库函数老是出错(MEMORY LEAK)

//////////////菜鸟我写的调用////////////////////////////////

 EncodeToJpgBUFFER(

  pBuffer,//in RGB数据源

  MyCam[g_iCam].GetWidth(),//in 获取的宽度

  MyCam[g_iCam].GetHeight(),//in获取的高度

  lppJpgBufferOut,//out

  lpdwJpgBufferSizeOut);//out

  if(!(*lppJpgBufferOut))

  {

   OutputDebugString("JpgBufferOutÊǿյÄ");

   return 0;

  }

    sprintf(szDebug,"JPG输出缓冲区大小%i",*lpdwJpgBufferSizeOut);

 OutputDebugString(szDebug);

  if(lppJpgBufferOut)

  {

  delete []lppJpgBufferOut;

  lppJpgBufferOut = NULL;

  }

  if(lpdwJpgBufferSizeOut)

  {

  delete []lpdwJpgBufferSizeOut;

  lpdwJpgBufferSizeOut = NULL;

  }

rojam 于 2004-08-06 21:00:23.0 编辑 [回复该贴]