10

tiff()我的系统上似乎忽略了分辨率和压缩选项(请参阅下面的信息)。这似乎与此 SO question中讨论的问题相同;我在这里发布问题,以便我可以更具体地了解我的系统。

例如下面的代码,

x <- rnorm(1000)
tiff("example.tiff", height=3, width=5, units="in", res=200, compression="lzw")
hist(x)
dev.off()

生成一个表面看起来不错的 .tiff 文件,但是当我使用 Photoshop 查看图像大小时,我看到了

在此处输入图像描述

这与tiff()创建具有正确像素数但以英寸为单位的大小错误的文件是一致的。(当我想控制图像的字体大小和图像大小时,这种差异给我带来了麻烦,例如对于需要特定物理图像大小的出版物)。

请注意,该文件也是 2.5 MB,对于 3"×5" 黑白 lzw 压缩的 tiff 来说似乎太大了。我怀疑压缩选项也被忽略了。

我得到了相同的结果ggsave(可能依赖于tiff()幕后?)和png(),所以这似乎是 R 和 OSX 处理图像文件的方式的普遍问题。

我在 OSX 10.8 上使用 R Studio 0.97.449 和 R 3.0.0,详情如下。

> sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.0.0
4

1 回答 1

5

我和你在同一个版本的 R 和 OS X 上。当我运行您的示例然后使用 ImageMagick 调用图像详细信息时,我在控制台中看到以下内容(已编辑):

$ identify -verbose /Users/schaunw/Desktop/example.tiff
Image: /Users/schaunw/Desktop/example.tiff
Format: TIFF (Tagged Image File Format)
Class: DirectClass
Geometry: 1000x600+0+0
Units: PixelsPerInch
Type: GrayscaleAlpha
Endianess: MSB
Colorspace: Gray
Depth: 8-bit
Page geometry: 1000x600+0+0
Dispose: Undefined
Iterations: 0
Compression: None
Orientation: TopLeft
Filesize: 2.402MB
Number pixels: 600K

正如您所指出的,文件大小如果对于应该很小的图像来说相当大,并且它显示出缺乏压缩。当我尝试更改type函数中的参数时,这个问题的答案就显露出来了tiff:OS X 告诉我它不再支持 X11,如果我想使用它,我需要手动安装它(参见http://www .macrumors.com/2012/02/17/apple-removes-x11-in-os-x-mountain-lion-shifts-support-to-open-source-xquartz/)。

所以我安装了它,然后再次运行你的示例代码,但这次type设置为“cairo”。这是我后来从 ImageMagick 得到的:

$ identify -verbose /Users/schaunw/Desktop/example.tiff
Image: /Users/schaunw/Desktop/example.tiff
Format: TIFF (Tagged Image File Format)
Class: DirectClass
Geometry: 1000x600+0+0
Resolution: 200x200
Print size: 5x3
Units: PixelsPerInch
Type: Grayscale
Endianess: MSB
Colorspace: Gray
Depth: 8-bit
Page geometry: 1000x600+0+0
Dispose: Undefined
Iterations: 0
Compression: LZW
Orientation: TopLeft
Filesize: 19.8KB
Number pixels: 600K

注意适当的小文件大小和 LZW 压缩,但也要注意这次 ImageMagick 明确声明打印大小为 5x3。它以前没有这样做。

所以看起来你的问题与不再随 X11 一起提供的 OS X 有关。安装 X11 应该可以解决您的问题。

于 2013-06-23T02:06:29.273 回答