HiDPI 截图默认显示过大

我使用的是 16 英寸 MacBook Pro。这是刚截取的 Discourse 标志截图。

logo

这个太大了;默认情况下应显示为 50%。

logo

可以通过读取 PNG 元数据来检测这一点。例如,这是 ImageMagick 的元数据:

$ identify -verbose logo.png | head
Image:
  Filename: logo.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
  Geometry: 312x90+0+0
  Resolution: 144x144
  Print size: 2.16667x0.625
  Units: PixelsPerInch
  Colorspace: sRGB

HiDPI 图像的分辨率为 144x144。

Discourse 应检测到此情况,并默认将图像缩放至 50% 显示。

4 个赞

如果能自动检测,那当然再好不过了。我的电脑缩放比例设为 125%,因此我的截图默认显示得也总是过大。

不幸的是,它并不适用于所有情况,例如 iOS 截图似乎完全缺少 Image/Resolution 字段。(iOS 13.6)

3 个赞

这取决于你如何存储截图。如果你将截图保存到“文件”中,它会以 PNG 格式保存,并保留分辨率信息。如果你将截图保存到“照片”中,然后从那里上传,分辨率信息将会丢失。(我认为它可能是先将图像保存为 HEIF 格式,然后再转码为 PNG 或其他格式。)

1 个赞

当然,根据我们用户的反馈,后一种情况更为常见。只有在您中断截图并手动重定向时,截图才会保存到文件中。

1 个赞

我认为也可以利用一些启发式方法来检测 iPhone 截图(例如来自苹果设备的 PNG 文件,其尺寸与 iPhone 屏幕完全一致……)

我确实考虑过这一点,但我在这里分享的许多截图都经过了裁剪,要么是为了隐私,要么是为了聚焦特定元素。

我并不否认 HiDPI 在这里是个不便之处,通常我只需在 Markdown 中将尺寸减半即可解决。