8

在我的项目中,我有一个 QLabel,我经常像这样更改像素图:

ui->frameLabel->setPixmap(slot_pic[blockId[currentSlot]][damageId[currentSlot]]);

slot_pic 只是一个 2d 地图。因此,您可以像这样更清楚地查看它:

ui->frameLabel->setPixmap(pixmap);

图像尺寸为 16x16,我的标签为 32x32。我已经检查了 scaledContents,所以当像素图发生变化时,图像的大小会增加一倍。但是,现在图像很模糊。我明白为什么,但我想知道是否有办法让它保持像素化。我想要一个更大的像素化图像。(如果这有助于您理解我的意思,图片来自 Minecraft)

谢谢你的时间 :)

4

1 回答 1

19

不要让 QLabel 进行缩放。相反,请使用QPixmap::scaled(). 像这样的东西:

ui->frameLabel->setPixmap(
    pixmap.scaled(32, 32, Qt::IgnoreAspectRatio, Qt::FastTransformation));

重要的参数是最后一个参数transformMode,它表明是否使用双线性过滤。

于 2013-07-17T07:32:24.663 回答