C++ C++;用于合并图像的库

C++ C++;用于合并图像的库,c++,image,image-processing,merge,cimg,C++,Image,Image Processing,Merge,Cimg,我需要合并两个图像,以便image2覆盖image1的一部分,依此类推。我找到了,但我不知道如何使用它为我的目的 是否有其他库可以使用或可以通过CImg实现这一点?我使用ImageMagick创建了两个类似的图像: convert -size 400x300 gradient:blue-yellow PNG24:gradient.png 然后运行这个CImgcode: #define cimg_use_png #define cimg_display 0 #include "CImg.h"

我需要合并两个图像,以便image2覆盖image1的一部分,依此类推。我找到了,但我不知道如何使用它为我的目的


是否有其他库可以使用或可以通过CImg实现这一点?

我使用ImageMagick创建了两个类似的图像:

convert -size 400x300 gradient:blue-yellow PNG24:gradient.png

然后运行这个
CImg
code:

#define cimg_use_png
#define cimg_display 0
#include "CImg.h"
using namespace cimg_library;
int main() {
   CImg<unsigned char> gradient("gradient.png");
   CImg<unsigned char> overlay("overlay.png");
   gradient.draw_image(150,50,overlay);
   gradient.save_png("result.png");
}
#定义cimg_使用_png
#定义cimg_显示0
#包括“CImg.h”
使用名称空间cimg_库;
int main(){
CImg梯度(“gradient.png”);
cimgoverlay(“overlay.png”);
梯度。绘制图像(150,50,叠加);
gradient.save_png(“result.png”);
}
得到这个:


查看Magick++查看。如果您阅读参考文档,您会发现如何将较小的图像复制到较大图像的子矩形的示例。我已经知道OpenCV,但我认为它对于我非常简单的目的来说开销太大。相反,Magick++似乎正是我所需要的。
#define cimg_use_png
#define cimg_display 0
#include "CImg.h"
using namespace cimg_library;
int main() {
   CImg<unsigned char> gradient("gradient.png");
   CImg<unsigned char> overlay("overlay.png");
   gradient.draw_image(150,50,overlay);
   gradient.save_png("result.png");
}