这几天自己在弄一个图片合并的问题,发现一直出现失败,达不到自己想要的效果。后来在网上借鉴了一部分代码,发现最终保存下来的合并的图片大小为0字节。
CxImage img1,img2,img3;
int h1,w1,h2,w2,h3,w3,bpp;
img1.Load("1.jpg",CXIMAGE_FORMAT_JPG);
img2.Load("2.jpg",CXIMAGE_FORMAT_JPG);
h1=img1.GetHeight();
w1=img1.GetWidth();
h2=img2.GetHeight();
w2=img2.GetWidth();
h3=h1;
w3=w1+w2;
bpp=img1.GetBpp();
img3.Create(w3,h3,bpp);
img3.MixFrom(img1,0,0);
img3.MixFrom(img2,w1,0);
img3.Save("3.jpg",CXIMAGE_FORMAT_JPG);
最后发现了是图片的原因:
分析:cximage有些版本对不常用的图片位深度支持不好。建议使用彩图测试。
首先选取了2张24位深度的彩图:
注意:如果在合并的时候两张图片的长和宽如果不一样,建议重新设置一下大小
img1.Resample(500,500);
img2.Resample(500,500);
合并之后就变成了8位的灰度图。
在这里插入图片描述