如何在Mac上用R设置PNG图片的分辨率

4

如何在Mac上使用png函数创建一个100 dpi分辨率的PNG图像?

我尝试过:

png("1.png", res = 100)
plot(1)
dev.off()

在Mac上,上述代码只会生成72dpi的png图片,可以通过命令行进行检查。
sips -g dpiWidth 1.png
  dpiWidth: 72.000

在Windows或Unix上运行以上R代码,都会生成一个预期的分辨率为100 dpi的png文件。我知道有一些解决方法(使用sips或ggplot),但我更希望在Mac上也能正常运行以上命令。我是否漏掉了什么?是否有一种方法可以使用R重新设置现有png文件的分辨率?
谢谢!

1
你能使用 width=height= 吗? - jogo
1
这没有任何效果:sips仍然报告72 dpi,无论给定的宽度/高度是多少 :-( - loveR
2
dpi(或ppi)是显示设备的一个特性,而不是图像的特性。一张图像具有像素尺寸。在不同显示分辨率(dpi/ppi)的设备上显示图像将导致不同物理尺寸的图像。 - Limey
当然可以。但我不想依赖于设备。我想要完全控制PNG的宽度/高度,以英寸或厘米为单位。在Windows和Unix上,PNG函数似乎正是人们所期望的。难道不是编写正确的标签(也许是https://exiftool.org/TagNames/PNG.html#PhysicalPixel)到所谓的“图像头”(https://en.wikipedia.org/wiki/Portable_Network_Graphics#Examples)吗? - loveR
1个回答

3

看起来 type = "cairo" 可以解决问题!

png("1.png", res = 100, type = "cairo")
plot(1)
dev.off()

在Mac的命令行中,可以检查最终分辨率是否为100 dpi:
sips -g dpiWidth 1.png
  dpiWidth: 100.000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接