【发布时间】:2021-03-27 08:57:46
【问题描述】:
在 Retina 显示器下,我们遇到了一个奇怪的图像模糊问题。图像的左侧部分 - 之前,右侧 - 修复之后。
我们的 QML 代码使用此代码显示图像:
Image {
anchors.verticalCenter: parent.verticalCenter
sourceSize.width: 25
sourceSize.height: 25
source: preview.url
}
我尝试将sourceSize 乘以Screen.devicePixelRatio - 图像变得更大,因此它们不适合它们的位置。
然后我将sourceSize.width 替换为width,height 也是如此。所以:
Image {
anchors.verticalCenter: parent.verticalCenter
width: 25
height: 25
source: preview.url
}
现在可以正常使用了。
我的问题是:
-
是否需要将
sourceSize乘以devicePixelRatio?还是自动管理?似乎它是为 PNG 自动管理的,而不是为 SVG 管理的。 -
如果它已经为 PNG 自动管理(这些图像 preview.url 是 PNG),那么为什么它会变得模糊?原始 PNG 图像的大小为 64x64 像素。
-
为什么我将
sourceSize乘以devicePixelRatio后图像变大了?
补充 #1。我在图像的 URL 中使用 data:// 方案。即
QString url("data:");
url += imageMimeType;
url += ";base64,";
url += imageData.toBase64();
【问题讨论】:
标签: qt qml qtquickcontrols2