【发布时间】:2014-06-10 18:53:24
【问题描述】:
在 QML 中,我创建了一个 Rectangle 视图,其中包含一组 Image 元素。我似乎无法让 smooth 属性工作,视图和图像都设置为 true。我试过自己缩放图像并缩放视图。无论我做什么,我都会得到一个锯齿状的缩放图像。我错过了什么吗?
我正在使用 Qt 5.2 并使用 QtQuick2ApplicationViewer(QQuickView 的子类)作为我的主要视图。
我找到了通过替换引擎中的图像处理程序来应用平滑的解决方案,但我觉得 smooth 属性应该开箱即用。
代码:
Image {
source: "image_400x400.png"
width: 400
height: 400
smooth: true
transform {
Scale {xScale: 0.25; yScale: 0.25}
}
}
第二次尝试:
Image {
source: "image_400x400.png"
width: 100
height: 100
smooth: true
}
第三次尝试:
Rectangle {
width: 400
height: 400
smooth: true
Image {
source: "image_400x400.png"
width: 400
height: 400
smooth: true
}
transform {
Scale {xScale: 0.25; yScale: 0.25}
}
}
我每次都得到相同的结果。
更新:按照 Nejat 的建议,我尝试了新的 Qt 5 antialiasing 属性。结果确实有所改善,但是当缩放到 0.5 倍以下时,边缘仍然有点锯齿状。有什么办法可以改变抗锯齿质量?
从左到右:
- 预期输出(用 Photoshop 缩放,未编辑)
-
antialiasing和smooth已启用 - 仅
smooth启用
我还想知道为什么smooth 什么都不做。
【问题讨论】:
标签: qt qml antialiasing