【发布时间】:2015-11-08 22:54:52
【问题描述】:
这是一个非常简单的 QML 代码
Window {
id: window
width: 800
height: 600
visible: true
Image {
id: image
source: "myImage.png"
}
}
图像需要完美显示像素。但是有一个默认的抗锯齿功能会使图像变得难看。我将渲染与其他图像阅读器进行了比较,显然存在问题。
我试过了(不是先同时再合并):
antialiasing: false
smooth: false
autoTransform: false
fillMode: Image.PreserveAspectFit
fillMode: Image.Pad
没有用,图像保持模糊丑陋
也许 Window 组件正在做某事或 QmlEngine,我正在像这样加载我的 qml:
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl("qrc:/ui.qml"));
return app.exec();
}
这是一个测试项目:https://github.com/BlueMagma2/imageIssue
编辑:
自从我提出这个问题后,我又测试了一些东西:
Linux 和 Windows 上的 Qbs 和 QMake 存在问题。
从 qrc 加载图片或从应用程序外部加载图片具有相同的结果。
较小的图像可以正常工作。所以可能是图像的大小造成了真正的麻烦(256 * 16064)
【问题讨论】:
-
尝试将
width和height明确指定给您的Image,确保它们与源png 匹配。 -
已经试过了,还是不行。
-
这很有趣。我不记得有这样的问题。您能否在 GitHub 或您喜欢的任何地方提供一个完整的、可运行的代码示例,以便我们尝试一下?谢谢。
-
您是如何构建您的项目的?我无法在 Qt Creator 中编译它。但是,我通过创建新的 Qt Quick 项目、添加您的文件并用您的替换默认 main.cpp 来编译它。图像看起来正确。没有什么是模糊的。
-
我用过Qbs,你用过QMake吗?那可能是问题所在?