要求是这样的:
把以下几个图片合成为一个图片(可以是任何格式)大小是145*145
a.png(100*100) -- 这个图片作为背景
b.jpg(15*15) -- 显示在左下角
c.gif(15*15) -- 显示在右下角我试验了一个方法,如下:
CRect rect(0, 0, 145, 145);
Bitmap bmPhoto(rect.Width(), rect.Height(), PixelFormat24bppRGB);  // 新图 -- 在内存中
bmPhoto.SetResolution(72, 72);  // 设置分辨率
Image imgBk(sWorkingDirectory + _T("a.png")); 
Image imgLeft(sWorkingDirectory + _T("b.jpg")); 
Image imgRight(sWorkingDirectory + _T("c.jpg")); Graphics *pGrPhoto = Graphics::FromImage(&bmPhoto);////////按窗口尺寸拉伸显示////////
picPoints[0] = PointF(rect.left, rect.top); // 顶点
picPoints[1] = PointF(rect.left + rect.Width(), rect.top); // 右上
picPoints[2] = PointF(rect.left, rect.top + rect.Height()); // 左下
pGrPhoto->DrawImage(&imgPhoto, picPoints, 3);CLSID pngClsid;
GetEncoderClsid(L"image/bmp", &pngClsid);bmPhoto.Save(WorkingDirectory + _T("\\newpng.bmp"), &pngClsid, NULL);结果新图片好多背景都是纯黑色,而且那个png图片上也大幅失真(简直都看不出原来的模样了)