假设我们有一组相同的图像imgs
(见下文)。请注意,设定长度可能在实践中有所不同。
library(magick)
library(rsvg)
img <- image_read_svg("https://image.flaticon.com/icons/svg/132/132233.svg", width = 30)
imgs <- replicate(8, img)
目标是打印包含imgs
内所有图像的方形图像(即使设置的长度可能不是方形数字):
我在image_append()
包中使用image_append(..., stack = TRUE)
和magick
而没有成功[ref]。理想情况下,我想要一个函数(例如printMosaic(imgs)
)作为输入imgs
并输出上面显示的平方图像。也许用不同的包装更容易实现?
这是一个非常好的问题!
首先,让我们随机选择我们想要的图像数量,然后自动计算我们需要的行数/列数。
# Number of images from 1 to 100
N <- sample(1:1e2, 1)
print(N)
[1] 84
# How many rows/columns we will need
X <- ceiling(sqrt(N))
print(X)
[1] 10
使用带有multipanelfigure
行和列的X
包创建空面板:
library(multipanelfigure)
figure <- multi_panel_figure(columns = X, rows = X)
# Iterate from 1 to N images and append them to figure
for(i in seq_len(N)) {
# "./R.png" is path to image I'm using
# With this package you don't need to worry about importing images
figure %<>% fill_panel("./R.png", label = "", scaling = "shrink")
}