0

我正在尝试将 rasterViz 包中的栅格导出为 jpg 或 png。我正在努力:

  • 完全修剪白色边框
  • 保持 NA 的透明度

至今:

library(raster)
library(rasterVis)

# Toy Data
m <-  matrix(seq(0,100,length.out=15000),150,100)
r <- raster(m, xmn=0,ymn=0,xmx=nrow(m),ymx=ncol(m))

jpeg(file = "test.jpg", bg = "transparent", height=nrow(r), width=ncol(r))

levelplot(t(r), contour=T, margin=F, scales = list(draw=FALSE), colorkey=NULL,
 par.settings = list(axis.line = list(line=0), mar=c(0,0,0,0), omi=c(0,0,0,0), 
                          xaxt='n', yaxt='n', bg='transparent'))
dev.off()

...仍然有白色边框并且透明度不起作用(至少对于边框)。我对需要将栅格转置来绘图也有点困惑。

对于上下文;我需要保留纵横比并精确修剪到扩展,以便我可以将图像用作其他地方的地图图块。手动后期处理是不可行的。

4

1 回答 1

1

只有png()支持透明背景。

png(file = "test.png", bg = "transparent", height=nrow(r), width=ncol(r))

png 支持透明背景:使用 bg = "transparent"。(并非所有的 PNG 查看器都能正确渲染具有透明度的文件。)在 type = "Xlib" 变体中使用透明度时,使用非常浅的灰色作为背景,因此如果在绘图中使用,则显示为透明。这允许使用不透明的白色,如示例中所示。type = "cairo"、type = "cairo-png" 和 type = "quartz" 变体允许半透明颜色,包括透明或半透明背景。

于 2018-04-26T14:32:22.500 回答