Racket 中的高 DPI 支持
High DPI support in Racket
我正在 Racket 中创建一个简单的程序,它导入两个位图并将它们导出到一个图像中。我的 MacBook 上的像素密度有问题,因为图像不是视网膜图像。对于我的图像处理,我使用的是 2htdp/image 库。
有没有办法设置我的球拍程序的像素密度?
导出图片的行是:
(save-image final-image "final.png" WIDTH HEIGHT)
我尽量不包含太多信息,但如果我可以添加任何内容(例如更多代码)以使我的问题更清楚,请告诉我。
P.S:处理通过以下方式处理此问题:
这不是一个完整的答案,但也许可以帮助您入门。
首先,你说"the images are non-retina"。这可能是一种误解。
"retina"这个词是用来描述屏幕的分辨率的,你正好
要使用(如果屏幕像素太小,屏幕大致为 "retina"
眼睛看不到单个点)。
但是,我的猜测是,当您在屏幕上绘制加载的图像时,它
显示为一半尺寸,您期待吗?
原因可在“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)
画之前。
最后,程序如何知道当前显示器是否是视网膜显示器?
函数get-display-backing-scale
就是你需要的:
(require racket/gui/base)
(get-display-backing-scale)
如果屏幕是 Retina,它将 return 2.0,否则为 1.0。
如果您有多个显示器,请查找功能
在文档中查看有关处理该问题的详细信息。
我正在 Racket 中创建一个简单的程序,它导入两个位图并将它们导出到一个图像中。我的 MacBook 上的像素密度有问题,因为图像不是视网膜图像。对于我的图像处理,我使用的是 2htdp/image 库。
有没有办法设置我的球拍程序的像素密度?
导出图片的行是:
(save-image final-image "final.png" WIDTH HEIGHT)
我尽量不包含太多信息,但如果我可以添加任何内容(例如更多代码)以使我的问题更清楚,请告诉我。
P.S:处理通过以下方式处理此问题:
这不是一个完整的答案,但也许可以帮助您入门。
首先,你说"the images are non-retina"。这可能是一种误解。 "retina"这个词是用来描述屏幕的分辨率的,你正好 要使用(如果屏幕像素太小,屏幕大致为 "retina" 眼睛看不到单个点)。
但是,我的猜测是,当您在屏幕上绘制加载的图像时,它 显示为一半尺寸,您期待吗?
原因可在“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)
画之前。
最后,程序如何知道当前显示器是否是视网膜显示器?
函数get-display-backing-scale
就是你需要的:
(require racket/gui/base)
(get-display-backing-scale)
如果屏幕是 Retina,它将 return 2.0,否则为 1.0。 如果您有多个显示器,请查找功能 在文档中查看有关处理该问题的详细信息。