我很想学习如何将图像分割成32x32(或任何尺寸)的可选图块并在 Qt 中显示它们?一个例子是平铺地图编辑器(屏幕右下角的面板)。我正在考虑尝试在 Qt 中创建一个2D级别编辑器以获得乐趣,但我对 Qt 相当新,并且还没有找到这个特定问题的答案。或者我可能只是不知道如何表达这个问题。
答案 0 :(得分:1)
将主图像添加到QPixmap,然后为要创建的每个图块调用QPixmap的复制功能。这允许您指定要复制的区域,并返回带有该区域的新QPixmap。
使用copy创建每个QPixmap磁贴,使用它创建一个QGraphicsPixmapItem,然后将其添加到QGraphicsScene。
所以,你会做这样的事情: -
// assuming your source image is in your resources qrc file
QPixmap srcImage(":/images/srcImage.png");
//in a loop for x and a 2nd loop for y
// copy a section of the source image
QPixmap tileImg = srcImage.copy(x, y, w, h);
// create the tile
QGraphicsPixmapItem* pTile = new QGraphicsPixmapItem(tileImg);
// add the pTile to the scene.
使用QGraphicsPixmapItem将为您提供一个平铺对象,可以在场景中定位,选择和移动。