В моем проекте у меня есть QLabel, который я часто меняю, как это:
ui->frameLabel->setPixmap(slot_pic[blockId[currentSlot]][damageId[currentSlot]]);
slot_pic — это просто 2D-карта. Таким образом, вы можете посмотреть на это более четко, как это:
ui->frameLabel->setPixmap(pixmap);
Изображение размером 16×16, а мой ярлык — 32×32. Я проверял scaledContents, поэтому при изменении растрового изображения изображение удваивается. Тем не менее, изображение теперь размыто. Я понимаю почему, но мне было интересно, есть ли способ сделать его пиксельным. Я хочу просто получить большее пиксельное изображение. (Изображение из Minecraft, если это поможет вам понять, что я имею в виду)
Спасибо за ваше время 🙂
Не позволяйте QLabel выполнять масштабирование. Вместо этого сделайте масштабирование самостоятельно, используя QPixmap::scaled()
. Что-то вроде этого:
ui->frameLabel->setPixmap(
pixmap.scaled(32, 32, Qt::IgnoreAspectRatio, Qt::FastTransformation));
Важным параметром является последний, transformMode
, который говорит, используется ли билинейная фильтрация или нет.
Других решений пока нет …