VC中使用Gdi+合并jpg图片

来源:本站
导读:目前正在解读《VC中使用Gdi+合并jpg图片》的相关信息,《VC中使用Gdi+合并jpg图片》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《VC中使用Gdi+合并jpg图片》的详细说明。
简介:本文给大家分享了VC中使用Gdi+合并jpg图片。

合并两张jpg图片为一张jpg图片,思路是先把两张图片jpg图片都转化成bmp图片,然后把两张bmp图片合并成一张bmp图片,然后是把这张bmp图片转化为jpg图片。

一 jpg,bmp互相转化

/*********************************format:bmp转为jpg, format为image/jpeg,jpg转为bmp,format为image/bmpstrDst为最终转化结果的图片路径strSrc为原来图片的路径**********************************/BOOL ConvertPic(const WCHAR *format, const CString &strDst, const CString &strSrc){BOOL bConvert = false;CLSID clsid;int nRet = 0;nRet = GetEncoderClsid(format,&clsid);  //得到CLSIDUSES_CONVERSION;if (nRet>=0){  Image image(A2W(strSrc));  image.Save(A2W(strDst),&clsid,NULL);  bConvert = true;}return bConvert;}

其中GetEncoderClsid函数如下:

/*****************************************************返回值为-1表示失败,其他为成功******************************************************/int GetEncoderClsid(const WCHAR *format, CLSID *pClsid){int nRet = -1;ImageCodecInfo * pCodecInfo = NULL;UINT nNum = 0,nSize = 0;GetImageEncodersSize(&nNum,&nSize);if (nSize<0){  return nRet;}pCodecInfo = new ImageCodecInfo[nSize];if (pCodecInfo==NULL){  return nRet;}GetImageEncoders(nNum,nSize,pCodecInfo);for (UINT i=0; i<nNum; i++){  if (wcscmp(pCodecInfo[i].MimeType,format)==0)  {   *pClsid = pCodecInfo[i].Clsid;   nRet = i;   delete[] pCodecInfo;   return nRet;  }  else  {   continue;  }}delete[] pCodecInfo;return nRet;}bmp转化为jpgConvertPic(L"image/jpeg","c:\1.jpg","c:\1.bmp")jpg转化为bmpConvertPic(L"image/bmp","c:\1.bmp","c:\1.jpg")

二 bmp图片合并

BOOL CombinePic(const WCHAR *format, const CString &strDst, const CString &strPic1,                const CString &strPic2){BOOL bCombine = false;int nRet = 0;CLSID clsid;nRet = GetEncoderClsid(format,&clsid);if (nRet>=0){  USES_CONVERSION;  Bitmap bmp1(A2W(strPic1));  Bitmap bmp2(A2W(strPic2));    int nWidth = 0, nHeight = 0;  nWidth = bmp1.GetWidth();   //假设两图片大小同  nHeight = bmp1.GetHeight();  Bitmap bmpCombine(2*nWidth,nHeight);  //高不变,宽*2,水平合并  Graphics * pG = NULL;  pG = Graphics::FromImage(&bmpCombine);  if (pG!=NULL)  {   pG->DrawImage(&bmp1,0,0);   pG->DrawImage(&bmp2,nWidth,0);   bmpCombine.Save(A2W(strDst),&clsid,NULL);  }}return bCombine;}

提醒:《VC中使用Gdi+合并jpg图片》最后刷新时间 2024-03-14 00:58:37,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《VC中使用Gdi+合并jpg图片》该内容的真实性请自行鉴别。