在C ++上使用CImg类显示多个图像

时间:2017-05-18 13:26:42

标签: c++ visual-studio c++11 visual-c++ cimg

如何将几张卡片(52张卡片)显示为“网格”? 我试图在左上角创建四个堆,在右上角创建四个堆,使用CImg类构成我游戏主桌的八个堆。

2 个答案:

答案 0 :(得分:0)

CImg本身具有在Windows中显示图像的基本功能。您所能做的就是显示多个图像,使用 CImgDisplay 结构沿着其中一个轴对齐它们。请参阅CImgDisplay::display() method的文档。您可以使用4个可用轴,看看是否符合您的需求。

如果这对您来说还不够,您必须使用一些外部库进行显示。

答案 1 :(得分:0)

更新了答案

您可以像这样使用#include "CImg.h" using namespace cimg_library; int main() { // Load up all images into CImg structures CImg<unsigned char> c7("7.png"); CImg<unsigned char> c9("9.png"); CImg<unsigned char> c4("4.png"); CImg<unsigned char> cjack("jack.png"); // Declare output and intermediate variables CImg<unsigned char> row0,row1,grid; // Append horizontally into a row, you could append many - you are not restricted to 2 row0 = c7.append(cjack,'x'); // Append horizontally into a row row1 = c4.append(c9,'x'); // Append vertically into a column grid = row0.append(row1,'y'); grid.display(); }

#include "CImg.h"
using namespace cimg_library;
int main() {
   CImg<unsigned char> c7("7.png");
   CImg<unsigned char> c9("9.png");
   CImg<unsigned char> cjack("jack.png");
   CImg<unsigned char> row;
   row = c7.append(cjack,'y').append(c9,'y');
   row.display();
}

enter image description here

原始答案

最简单的方法可能就是追加这样的图像:

'y'

给出了这个:

enter image description here

如果您将append()的{​​{1}}轴参数更改为'x',它们将并排追加:

   CImg<unsigned char> col;
   col = c7.append(cjack,'x').append(c9,'x');
   col.display();

enter image description here

所以,你应该能够看到如何制作一个网格。