(Qt C++) изменить размер pixmap и сохранить пикселизацию?

в моем проекте у меня есть QLabel, который я часто меняю pixmap так:

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

slot_pic просто 2D карте. Таким образом, вы можете посмотреть на него яснее, как это:

ui->frameLabel->setPixmap(pixmap);

изображение имеет размер 16x16, а мой ярлык-32x32. Я проверил scaledContents, поэтому при изменении pixmap изображение имеет двойной размер. Однако изображение теперь размыто. Я понимаю, почему, но мне было интересно, есть ли способ сделать его пиксельным. Я просто хочу большего. пиксельное изображение. (Изображение из Minecraft, если это поможет вам понять, что я имею в виду)

Спасибо за ваше время :)

1 ответов


не позволяйте QLabel выполнять масштабирование. Вместо этого выполните масштабирование самостоятельно, используя QPixmap::scaled(). Что-то вроде этого:--6-->

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

важным параметром является последним, transformMode, который сообщает, используется ли билинейная фильтрация или нет.