如何在保持图像高宽比的同时最小化下一张图像中的空白空间?
我指定了mar=c(0,0,1,0)
页边距,但图像仍然间隔开。左侧,中央,底部和右侧都有额外的间距。我希望图像以网格排列,并且它们之间的间距很小。
这是我到目前为止所拥有的:
library(EBImage)
library(png)
pngs<-lapply(seq(1:4), function(x) {
readPNG(system.file("images", "sample-color.png", package="EBImage"))
})
par(mfrow=c(2,2), mar=c(0, 0, 1, 0))
invisible(sapply(seq_along(pngs), function(i) {
plot.new()
plot.window(xlim=c(0, 1), ylim=c(0, 1), asp=1)
rasterImage(pngs[[i]], 0, 0, 1, 1)
title(paste0(letters[i], '. Image ', i), font.main=2)
}))
答案 0 :(得分:1)
由于512:768
的图像在您的示例中保留了1:1
的原始宽高比。相反,您的默认绘图设备的宽高比似乎接近asp=NA
。这不能很好地匹配并导致空格。
两种解决方案:
width
可以使图像变形,从而使它们占据设备的整个空间。 通过设置height
的{{1}}和dev.new()
参数来调整绘图设备的尺寸。例如:
library(EBImage)
library(png)
png <- readPNG(system.file("images", "sample-color.png", package="EBImage"))
dev.new(width=4.5, height=8)
par(mfrow=c(2,2), mar=c(0, 0, 1, 0))
for(i in seq_len(4)){
plot.new()
plot.window(xlim=c(0, 1), ylim=c(0, 1), asp=1)
rasterImage(png, 0, 0, 1, 1)
title(paste0("Image ", i))
}
答案 1 :(得分:1)
如果for idx, d in g:
print(d['C'].iat[0])
print(d['C'].iloc[0], '\n')
alpha
alpha
charlie
charlie
软件包的其他功能不是必需的,则这是另一个利用png
的解决方案。 EBImage保持长宽比,除非故意对图像进行了变换。
此解决方案需要更多的工作来放置带有EBImage
的地标标签,但是增加的成本可能会因具有更大的灵活性而被抵消。
text()