(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
, который сообщает, используется ли билинейная фильтрация или нет.