(Qt C ++) Изменить размер изображения и сохранить пикселирование?

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

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

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

ui->frameLabel->setPixmap(pixmap);

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

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

6

Решение

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

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

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

15

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]