gpt4 book ai didi

racket - Racket 中的高 DPI 支持

转载 作者:行者123 更新时间:2023-12-04 17:58:27 25 4
gpt4 key购买 nike

我正在 Racket 中创建一个简单的程序,它导入两个位图并将它们导出到一个图像中。我的 MacBook 上的像素密度有问题,因为图像不是视网膜图像。对于我的图像处理,我使用的是 2htdp/image 库。

有没有办法设置我的 Racket 程序的像素密度?


导出图像的行是:

(save-image final-image "final.png" WIDTH HEIGHT)

我尽量不包含太多信息,但如果我可以添加任何内容(例如更多代码)以使我的问题更清楚,请告诉我。


P.S: Processing 通过以下方式解决这个问题:

https://processing.org/reference/displayDensity_.html

最佳答案

这不是一个完整的答案,但也许可以帮助您入门。

首先,您说“图像是非视网膜图像”。这可能是一种误解。“视网膜”这个词用来描述屏幕的分辨率,你碰巧要使用(如果屏幕像素太小,屏幕大致是“视网膜”眼睛看不到单个点)。

但是,我的猜测是,当您在屏幕上绘制加载的图像时,它显示为一半大小,您期待吗?

原因可在“1.8 屏幕分辨率和文本缩放”部分找到gui 的文档中有以下内容:

On Mac OS, screen sizes are described to users in terms of drawing units. A Retina display provides two pixels per drawing unit, while drawing units are used consistently for window sizes, child window positions, and canvas drawing. A “point” for font sizing is equivalent to a drawing unit.

一种解决方案是将加载的图像缩放到两倍大小:

(scale 2 the-loaded-image)

在绘制之前。

最后,程序如何知道当前显示器是否是 Retina 显示器?get-display-backing-scale 函数是您所需要的:

(require racket/gui/base)
(get-display-backing-scale)

如果屏幕是 Retina,它将返回 2.0,否则返回 1.0。如果您有多个显示器,请查找功能在文档中查看有关处理该问题的详细信息。

关于racket - Racket 中的高 DPI 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com