c++ - (Qt C++)调整像素图大小并保持像素化?

标签 c++ qt interpolation image-resizing qpixmap

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

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

slot_pic 只是一个二维 map 。所以你可以像这样看得更清楚:

ui->frameLabel->setPixmap(pixmap);

图像尺寸为 16x16,我的标签尺寸为 32x32。我已经检查了 scaledContents,所以当像素图改变时,图像的大小加倍。然而,图像现在变得模糊了。我明白为什么,但我想知道是否有办法让它保持像素化。我只想拥有更大的像素化图像。 (图片来自 Minecraft,如果可以帮助您理解我的意思)

感谢您的宝贵时间:)

最佳答案

不要让 QLabel 进行缩放。相反,使用 QPixmap::scaled() 自己进行缩放.像这样:

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

重要的参数是最后一个,transformMode,它告诉我们是否使用双线性过滤。

关于c++ - (Qt C++)调整像素图大小并保持像素化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17692900/

相关文章:

c++ - 如何在QTreeView的第二列添加项目

c++ - 如何防止调整自定义 QWidget 的大小?

python - 返回分布的 z 值 - python

c++ - libstdc++ - 由于 tr1/regex 导致编译失败

c++ - 编译时出错

c++ - 如何使用 Qt 的静态构建为 Windows 创建静态链接版本?

perl - 如何在 perl 中调用在文字字符串中定义的函数名称?

android - Android OpenGL ES 环境中的插值

c++ - 在实例化期间为 C++ 类变量设置变量类型

c++ - OpenGL 分离 RGB channel