【问题标题】:R: tiff( ) won't compress or set resolution to 300 ppiR: tiff() 不会压缩或将分辨率设置为 300 ppi
【发布时间】:2012-09-26 20:26:33
【问题描述】:

我正在尝试使用 R 保存一些图表以供发布。我想用 lzw 压缩它们,并将分辨率设置为 300。由于某种原因,它不允许我这样做。事实上,R 似乎忽略了我设置的一些变量。

对于代码示例,

tiff(file="file.tiff", 
            width=6.83, height=6.83, units="in", 
            pointsize="12", compression = "lzw", 
            bg="white", res=300, antialias = "none" )

输出大小为 28 x 28 英寸、分辨率为 72 ppi 的未压缩文件。

一个可重现的例子是

hist(rnorm(1000))
dev.off()

这是 ImageMagick 对 file.tiff 的输出

Image: file.tiff
  Format: TIFF (Tagged Image File Format)
  Class: DirectClass
  Geometry: 2049x2049+0+0
  Units: PixelsPerInch
  Type: PaletteAlpha
  Base type: TrueColor
  Endianess: MSB
  Colorspace: sRGB
  ...
  Compression: None
  ...
  Filesize: 16.8MB

我在另一个运行 10.7 的 Apple 上对此进行了测试,得到了相同的结果。可以看出,即使使用选项压缩并将分辨率设置为 300 dpi,输出也不遵循选项。

【问题讨论】:

  • 你能给我们一个可重现的例子吗?您指定需要 6.83 英寸乘以 300 ppi 或每侧 2049 像素的图像大小。你说输出是 28 英寸乘以 72 ppi,即 2016 像素的图像大小。所以你得到了你要求的图像大小,但对规格有混淆。
  • 这是 OS X 默认不再包含 X11 的问题。我在stackoverflow.com/questions/17218305/… 中概述了解决此问题的步骤
  • 可能与这个问题有关吗? stackoverflow.com/questions/20880558/…

标签: r plot tiff


【解决方案1】:

我通过附加在 GNU/Linux 上使用 R 2.15.1 验证了您的示例

hist(rnorm(1000))
dev.off()

到您的tiff() 调用并使用ImageMagick 的命令行工具identify 检查生成的文件"file.tiff"(大部分输出省略):

Image: file.tiff
  Format: TIFF (Tagged Image File Format)
  Class: DirectClass
  Geometry: 2049x2049+0+0
  Resolution: 300x300
  Print size: 6.83x6.83
[...]
  Compression: LZW
[...]
  Filesize: 70KB
[...]

R 命令似乎完全按照您的意图执行。我怀疑您创建的 TIFF 文件不是您描述的方式,或者您用来检查 TIFF 文件属性的工具有问题。

【讨论】:

  • 还有另一个选项,我正确输入了选项,但它不起作用。我已经检查了 ImageMagick 中的文件,但没有得到你得到的结果。相反,我得到一个未压缩的文件,也没有关于分辨率的信息。在原始帖子中查看我的编辑。
  • 您添加了一个新的重要细节:您使用的是 Mac OS X 版本的 R。也许 R-SIG-Mac 邮件列表是发布您的问题的好地方。
  • 我刚刚在装有 OS X 10.5.8 和 R 2.12.2 的 Mac 上检查了该示例,并且我还得到了一个未压缩的文件,因此问题似乎已经存在了更长的时间。
  • 我在 OS X 10.7.5 上使用 R 3.0 时遇到了同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多