2013-06-19 78 views
0

我很想知道如何將圖像分割成32x32(或者真正任意大小)的可選圖塊並將其顯示在Qt?一個例子是平鋪地圖編輯器(屏幕右下角的面板)。我正在考慮嘗試在Qt中創建2D關卡編輯器,但我對Qt相當陌生,尚未找到針對此特定問題的答案。或者,我可能只是不知道如何解釋這個問題。在QT中繪製32x32平鋪圖像

+0

在* example *或* demo *中有一個[** embedded lighmaps demo **](http://qt-project.org/doc/qt-4.8/demos-embedded-lightmaps.html)目錄在Qt發行版中。 –

回答

1

將您的主圖像添加到QPixmap,然後爲每個要創建的圖塊調用QPixmap的複製函數。這使您可以指定要複製的區域,並返回帶有該區域的新QPixmap。

對於您使用副本創建的每個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將爲您提供可放置在現場,選定並移動約瓷磚對象。

+0

謝謝Merlin069。我將使用這種方法。 –