问题标签 [hidpi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
145 浏览

qt - QML Image Element > Retina/HiDPI 支持基于网络的图像

如您所知,QtQuick 的图像元素自动支持 HiDPI 图像。例如,它可以@2x在 iOS 和 MacOS 平台上加载图像。相同的代码在 Android 平台上运行正常。
官方文档中有一节谈到了网络透明性
但是 Image 元素不会从我的服务器加载 HiDPI 版本的图像。

这是一个错误吗?
如何处理此问题以加载高 dpi 图像?有没有官方推荐的方法?

谢谢

0 投票
2 回答
1649 浏览

linux - hidpi linux上的sqldeveloper

我在 hidpi 机器(xps 9370 和 4k 显示器)上安装了 sqldeveloper 18.2,由于缩放问题,它无法使用。

我尝试使用不同的选项启动它:

  1. 原样 - 界面图标和字体太小
  2. 随着界面字体的增加 - 文本重叠使其无法使用
  3. 在 Java9 中使用 gdk_scale
  4. 在 Java8 中使用 -Dsun.java2d.uiScale=2

似乎第 3 点和第 4 点进行了缩放,但出现故障使其再次无法使用。

故障示例

我想坚持使用 4k 分辨率,因为它与 fullhd 确实有区别

如果您能指导我在哪里挖掘或解决问题,我将不胜感激

谢谢!

0 投票
0 回答
181 浏览

qt - QGraphicsItem 未呈现为 HiDPI

在 Qt 地图应用程序 ( QGIS ) 中,地图画布是 QGraphicsItem。我们不使用任何 OpenGL,每个元素都使用 QPainter 渲染。

除了地图画布外,我们的应用程序在 HiDPI 上正确显示。

请参阅地图中的像素线:

在此处输入图像描述

我看过的:

  • 关于 HiDPI的Qt文档。已经在做要求的事情(mac 上的 info.plist,使用浮点签名进行画家方法)
  • 关于 Qt的错误报告,但它似乎与我们不使用的 OpenGL 和项目缓存有关。

对于画家,我们使用QPainter::Antialiasing.

在这里发布代码并不容易,但这里有一个链接到渲染线的源代码

我一直在尝试做一个最小的复制示例,但我在这里仍然失败。

一个提示是,每当鼠标在地图画布上时,光标的大小就会加倍(它太大)。我会说大约 2 倍大,这是我的设备像素比

我不确定这是仅 Mac 的问题(它似乎也发生在 Linux 上,但不在 Windows 上)。Qt 关于可扩展性的文档指出 Mac 以不同方式处理它。

我真的不知道要寻找什么,我希望得到一些提示。

0 投票
1 回答
164 浏览

java - 如何在 JavaFX 中处理不同级别的 HiDPI 缩放的多分辨率图像?

HiDPI 屏幕有许多缩放因子(1.25x、1.5x、2x、3x 等)。最直接的解决方案是在 JavaFX 中提供同一图像的多个版本,这在 Swing 中使用1.25x 或2x之类的东西似乎是可能的。这也适用于 JavaFX 吗?如果没有,我应该如何加载图像以确保它们看起来清晰,无论 HiDPI 屏幕如何?@125pct@2x

我在这里和那里阅读了 JavaFX 支持的内容@2x,但我还没有找到任何官方文档实际说明它。

(作为旁注,我宁愿不使用 SVG 图像,因为与 Batik 无关的问题以及这将引入的大量依赖项)

0 投票
2 回答
622 浏览

macos - 如何将位图纹理的每个像素渲染到 macOS 上屏幕的每个原生物理像素?

由于现代 macOS 设备默认选择使用缩放的 HiDPI 分辨率,因此位图图像在屏幕上变得模糊。有没有办法将位图逐个像素地渲染为显示屏的真正本机物理像素?是否有任何 CoreGraphics、OpenGL 或金属 API 可以在不改变屏幕显示模式的情况下实现这一点?

如果您正在考虑那些convertXXXXToBacking和朋友,请停止。这是为您解释。MacBook Pro 中的典型 13 现在具有原生 2560x1600 像素分辨率。全新 macOS 安装后,推荐的默认屏幕分辨率为 1440x900。用户可以通过系统偏好设置将其更改为 1680x1050。在 1440x900 或 1680x1050 的情况下,backingScaleFactor 正好是 2。典型的渲染路线会首先将任何东西渲染到非物理的 2880x1800 或 3360x2100 分辨率,然后 OS/GPU 使用未知方法进行最终重采样。

0 投票
1 回答
521 浏览

java - java 9+ 的 HiDPI 支持,Windows L&F 的 JTable 网格线的缩放问题 - 但不包括 Nimbus

我正在将我的 Swing 应用程序迁移到 Java 11 以利用 HiDPI 显示支持。我使用的是三星显示器,分辨率设置为 3840x2160,缩放比例为 125%,Windows 10。

尽管 java 9 及更高版本被宣传为可以正确处理 HiDPI 缩放,但在显示简单的 JTable 时,网格线会出现不同的粗细,如下所示:

JTable 网格线问题

这是此的代码:

但是,在设置 Nimbus L&F 时,问题就消失了:

JTable Nimbus

如何使用默认的 Windows L&F 实现相同的效果?

(使用 java 9 和 10 观察到相同的行为)

0 投票
1 回答
538 浏览

javascript - FabricJS HiDPI getImageData

我仍在收集理解 HTML5 中的 web 2 打印编辑器所需的部分。我正在使用 FabricJS 和一堆其他 3rd 方工具来实现它。

我最新的障碍是我的三星 Chromebook Pro,它有一个 HiDPI/视网膜显示屏。这window.devicePixelRatio是不同的,我试图弄清楚如何使用 FabricJS 来应对这种更高的 DPI。我遵循了其他人一直在说的成功的方法,但它似乎对我不起作用或对我没有帮助。加上我的画布变得非常大,物体不再是可移动的。

我还使用了另一个 3rd 方库PetitoJPEG,我用它来编码 FabricJS 画布中的原始像素数据。由于与我的另一台笔记本电脑的 devicePixelRatio 不同,运行编码器会导致画布右侧的红点不会显示在校样图像上。

我想知道如何在 HiDPI 显示器上对整个画布进行编码。

由于所有第 3 方资产,我愿意提供直接链接而不是 JSFiddle:http: //xbit.x10host.com/editor2.php

我想我理解人们所说的缩放方法是成功的,但我想知道它是否因为我在画布容器上的 CSS 转换而无法正常工作。我尝试通过控制台调整缩放和画布宽度/高度和 CSS 宽度/高度,但无济于事。

任何帮助,将不胜感激。我将粘贴每个人都说在下面工作的片段。

注意:我的三星 Chromebook Pro 记录了 26562 字节写入,而我的联想 x230 Windows 笔记本电脑记录了 27586 字节。

我知道上面的代码块似乎对大多数人都有效,但是下面的行不是不正确的吗?

这不是您定义内联样式的方式。你需要一个“:”而不是“=”并且没有度量单位,所以我想知道这是如何工作的。

这是我为更有效地隔离问题而创建的新隔离页面的屏幕截图:新的隔离页面这里是直​​接 URL:http: //xbit.x10host.com/isolation.php

您可以看到如何使用其他人所说的方法不起作用。CSS 属性值无效。也许我只是感到困惑,但即使我正确设置了 CSS 宽度和高度,我是使用 1125x675 的 getImageData 还是新的 4500x1200?使用后者会导致样张图像过大;4500x1200 包含我想要的所有数据,但是还有所有这些黑色空间。下面是该结果的屏幕截图。在此处输入图像描述

现在,2250x1350(使用 goto 方法和正确的内联 CSS 语法输出)似乎是正确的,但我认为画布修复应该有助于输出与我的其他笔记本电脑相同的输出。这是否意味着拥有 HiDPI 显示器的人将获得比没有 HiDPI 显示器的人更高质量的校样图像(和打印)?无论设备 DPI 如何,我都希望尺寸和像素数相同。

0 投票
1 回答
1342 浏览

macos - MacOS上的HiDPI / backingScaleFactor,如何获得实际值?

我正在尝试获取当前屏幕的显示缩放设置,以便我可以在我的 OpenGL 和/或 Vulkan 窗口内正确缩放以匹配操作系统的设置。文档说要使用

但是,这将返回 1.0f 根本没有缩放,而 2.0f 用于一些缩放。

做同样的事情。

将为您提供当前屏幕的虚拟分辨率。在系统偏好设置 -> 显示 -> 缩放中,这是“看起来像”值。对于我拥有的 3840x2160 屏幕,可能的值为 1920x1080、2560x1440、3008x1692、3360x1890、3830x2160,具体取决于您选择的 Scaled 设置。在我的 MBP 的内置屏幕上,其原始分辨率为 2880x1440,“看起来像”值可以是 1024x640、1280x800、1440x900、1680x1050、1920x1200。文档说要使用

NSRect然而,这只是乘以backingScaleFactor.

是有人试图获得屏幕的真实分辨率。

所以,我想要backingScaleFactor给定的真实屏幕分辨率或本机屏幕分辨率NSScreen。有任何想法吗?

0 投票
1 回答
114 浏览

mfc - 在激活 GDI 缩放的 Win 10 中将位图图像复制到剪贴板

我有一个生成图形图像的 MFC 桌面应用程序,我希望用户能够将其作为位图复制到剪贴板。我使用标准剪贴板 API 例程,到目前为止它们一直运行良好。但是,我现在已经激活了 GDI 缩放(通过清单),以便程序可以在 HiDPI 显示器上运行(相当好),并且我发现放置在剪贴板上的图像只是实际图像的左上象限。这可能是由于图像的内部缩放 - 显示以 200% 运行。如何复制整个图像?

0 投票
1 回答
717 浏览

macos - 从命令行“以低分辨率打开”

Mac OS 通过在应用程序信息中设置“以低分辨率打开”复选框提供了以非视网膜低分辨率渲染应用程序的便捷功能。但是,对于开发,我使用 IDE 中的运行配置启动我的应用程序。

如何使用可以放入运行配置的命令或从命令行以低分辨率启动应用程序?