在OSX中无法可靠地设置tiff()分辨率和压缩

时间:2013-06-20 15:55:07

标签: image r tiff

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

例如以下代码,

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

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

enter image description here

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

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

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

我正在使用R Studio 0.97.449,在OSX 10.8上使用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

1 个答案:

答案 0 :(得分: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。它之前没有这样做。

所以看起来你的问题与OS X不再与X11一起发货了。安装X11应该可以解决您的问题。