中使用合并图片计划
合并两张jpg图片为一张jpg图片,思路是先把两张图片jpg图片都转化成bmp图片,然后把两张bmp图片合并成一张bmp图片,然后是把这张bmp图片转化为jpg图片。
一 jpg,bmp互相转化
/*********************************
format:bmp转为jpg, format为image/jpeg,jpg转为bmp,format为image/bmp
strDst为最终转化结果的图片路径
strSrc为原来图片的路径
**********************************/
BOOL ConvertPic(const WCHAR *format, const CString strDst, const CString strSrc)
{
BOOL bConvert = false;
CLSID clsid;
int nRet = 0;
nRet = GetEncoderClsid(format,clsid); //得到CLSID
USES_CONVERSION;
if (nRet=0)
{
Image image(A2W(strSrc));
ve(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 (nSize0)
{
return nRet;
}
pCodecInfo = new ImageCodecInfo[nSize];
券商股可以中长期建仓。但短期能否赚钱 if (pCodecInfo==NULL)
{
return nRet;
}
GetImageEncoders(nNum,nSize,pCodecInfo);
for (UINT i=0; 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转化为jpg
ConvertPic(L\"image/jpeg\",\"c:\\\\g\",\"c:\\\\p\")
jpg转化为bmp
ConvertPic(L\"image/bmp\",\"c:\\\\p\",\"c:\\\\g\")
二 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 = tWidth(); //假设两图片大小同
nHeight = tHeight();
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);
ve(A2W(strDst),clsid,NULL);
}
}
return bCombine;
}
例子:CombinePic(L\"image/bmp\",\"p\",\"p\",\"p\");
查看本文来源
湖州治疗男科医院哈尔滨哪家医院白癜风医院好
潍坊哪个医院治疗白癜风最好
- 巴西队6月6日麒麟杯对阵日本队 或还将赴韩右脚友谊赛
- 天德钰快充协议芯片产品线成熟 能够满足客户多种不同需求
- 邱淑贞17岁大前妻沈月游东京,社交平台狂晒美照,星味十足
- 2022半年特辑|蓄力电动转化,广汽本田转型加速
- “在哪里哪负责、谁管理谁负责”,北京发布《关于统筹做好社会四面疫情风险排查工作的指引》
- 南科大党委书记李凤亮做客市民文化大讲堂 畅谈“未来大城市与未来教育”
- 王晶67岁生日全家福曝光,被妻子挽着手臂太甜蜜,小女儿容貌出众
- 谢霆锋现身台自曝曾与王晶关系不好,提到王菲时他一脸娇羞
- 邓紫棋走红前长啥样?看到旧照的那一刻,是超人气喜欢的类型啊
- 从前最爱的下酒菜,好吃还便宜,年轻人没听过,现在也很少见了
- 猪八戒挑的担子里,有一件宝宝,能够阻止孙悟空成佛
- NIO Power Day 2022:再多电站数量超1千座 “电区房”覆盖率达62.1%