如何使用CIMG.H库在另一个图像上显示一个图像

How do I display one image over the other using CImg.h library?

本文关键字:图像 显示 一个 CIMG 另一个 何使用      更新时间:2023-10-16

我试图通过另一个图像显示一个图像,但在同一窗口中。我已经看到帖子并排工作,但我已经知道该怎么做。这是我到目前为止所拥有的:

string firstFile = "";
string secondFile = "";
cout << "Enter the filenames corresponding to the Image and the Logo (in that order): " << endl;
cin >> firstFile;
cin >> secondFile;
const char* filename = firstFile.c_str(); 
CImg<unsigned char> img1(filename); 
const char* filename2 = secondFile.c_str(); 
CImg<unsigned char> img2(filename2); 
int w = img1.width(); 
int h = img1.height(); 
int channels = img1.spectrum(); 
cout << "Successfully loaded image " << firstFile << " of size " << w << " x " << h << " x " << channels << endl;
int w2 = img2.width();
int h2 = img2.height();
channels = img2.spectrum();
cout << "Successfully loaded image " << secondFile << " of size " << w2 << " x " << h2 << " x " << channels << endl;
cout << "Enter the position in (x, y) coordinates where this logo must be placed." << endl << "x must be between 0 and 239 and y must be between 0 and 191." << endl;
int x1, y1;
cin >> x1;
cin >> y1;
char title[100];
sprintf(title, "%s (%d x %d x %d)", filename, w, h, channels);

CImgDisplay disp(img1, title, 0); 
img1.display(disp, false); 

这样:

   // Draw img2 on top of img1 at (x1,y1)
   img1.draw_image(x1,y1,img2);