2017-10-04 3 views
0

J'essaie d'afficher une image sur l'autre mais dans la même fenêtre. J'ai vu des poteaux côte à côte mais je sais déjà comment faire. Voici ce que j'ai jusqu'à présent:Comment afficher une image par rapport à l'autre en utilisant la bibliothèque CImg.h?

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); 

Répondre

0

Comme ceci:

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

Merci! Juste pour noter pour les autres qui pourraient avoir le problème que j'avais, je devais mettre cette déclaration avant que le img1 soit affiché. –