获取我正在查看的情节作为 300 像素 TIFF 以供发布

Posted

技术标签:

【中文标题】获取我正在查看的情节作为 300 像素 TIFF 以供发布【英文标题】:Get the plot I am looking at as a 300px TIFF for publication 【发布时间】:2015-09-14 11:21:52 【问题描述】:

我正在尝试为我解决一个常见问题。一旦我有了一个绘图(通常使用 ggplot 制作),那么我需要高分辨率(300 或有时 600 dpi)TIFF 图像(在 OSX 中)的输出。

我想我可以为此创建一个简单的函数,但它似乎不像我预期的那样工作。

dev.copy2tiff <- function(filename,res=300,compression="lzw",...)
  sizes <- dev.size(units="px")

  cop <-dev.copy(tiff,filename=filename,width=sizes[[1]],height=sizes[[2]],units="px",res=res,compression=compression,pointsize = 3,...)
  dev.flush()
  dev.off()
  return(cop)

输出:

情节应该是什么样子的屏幕截图:

为什么 TIFF 中的输出与屏幕上的不一样,我该怎么办?

编辑:

刚刚意识到:设备的大小当然应该指定为宽度和高度,而不是像素。修改后的代码:

dev.copy2tiff <- function(filename,res=300,compression="lzw",...)
  sizes <- dev.size(units="cm")

  cop <- dev.copy(tiff,filename=filename,width=(sizes[[1]]),height=(sizes[[2]]),units="cm",res=res,compression=compression,...)
  dev.flush()
  dev.off()
  return(cop)

生成外观精美的 TIFF 图像,看起来与屏幕上呈现的图像(在 RStudio 中)相似,但采用 72 DPI(根据 OS X 预览)。

为什么不是 300 dpi?

【问题讨论】:

【参考方案1】:

解决方案似乎是通过 EPS 文件格式。

dev.copy2eps(file="filename.eps")

现在是我的朋友。在 Preview (OSX) 中打开后,它可以导出到 TIFF(或按原样提交)。

【讨论】:

以上是关于获取我正在查看的情节作为 300 像素 TIFF 以供发布的主要内容,如果未能解决你的问题,请参考以下文章

PDF to tiff ImageMagick 问题

如何在Bokeh中显示TIFF图像?

iOS:以像素为单位获取显示的图像大小

错误结果绘图窗口 FFT

将 .tiff 文件的像素顺序从 rgbrgb 更改为 rrbbgg(交错到非交错)

如何为使用 python 保存的 tiff 图像设置像素大小,以便将像素高度和宽度设置为 ImageJ 中的特定值?