使用Qt Quick缩放像素艺术

时间:2014-05-10 10:23:27

标签: qt qml scaling qt-quick pixelate

我有一个使用像素艺术的Qt Quick游戏。例如:

import QtQuick 2.2
import QtQuick.Controls 1.1

ApplicationWindow {
    id: window
    visible: true
    width: 300
    height: 300
    title: qsTr("PixelArt")

    Image {
        source: "http://upload.wikimedia.org/wikipedia/commons/f/f0/Pixelart-tv-iso.png"
        anchors.centerIn: parent
    }
}

original size

我想缩放艺术品,所以我增加了尺寸:

import QtQuick 2.2
import QtQuick.Controls 1.1

ApplicationWindow {
    id: window
    visible: true
    width: 300
    height: 300
    title: qsTr("PixelArt")

    Image {
        source: "http://upload.wikimedia.org/wikipedia/commons/f/f0/Pixelart-tv-iso.png"
        anchors.centerIn: parent
        width: 256
        height: 256
    }
}

bad scaled

图像变得模糊。如何在保持其“清晰度”的同时缩放图像,使其看起来像这样:

good scaled

1 个答案:

答案 0 :(得分:11)

缩放时图像模糊,因为默认情况下smooth属性为true。

  

主要用于基于图像的项目,以决定该项目是否应使用平滑采样。使用线性插值执行平滑采样,而使用最近邻居执行非平滑采样。

将其设置为false以阻止这种情况发生:

import QtQuick 2.2
import QtQuick.Controls 1.1

ApplicationWindow {
    id: window
    visible: true
    width: 300
    height: 300
    title: qsTr("PixelArt")

    Image {
        source: "http://upload.wikimedia.org/wikipedia/commons/f/f0/Pixelart-tv-iso.png"
        anchors.centerIn: parent
        width: 256
        height: 256
        smooth: false
    }
}

有关缩放的更多信息,请参阅:

http://en.wikipedia.org/wiki/Image_scaling