获取文本的渲染灰度图像作为矩阵

Obtain rendered grayscale image of text as a matrix

我想将给定的字符串呈现为灰度图像,然后对其执行一些简单的操作。我知道 text() 函数。不幸的是,这需要打开一个图形设备。就我的目的而言,直接将灰度图像存储在矩阵中会更加方便和高效。

获取给定字符串的渲染灰度图像的矩阵表示的有效方法是什么?

Richard Telford 建议的 magick 软件包是解决问题的关键:

# Load the package
require(magick)

# Create white canvas initializing magick graphical device
img <- image_graph(width = 140, height = 40, bg = "white", pointsize = 20,
                   res = 120, clip = TRUE, antialias = TRUE)
# Set margins to 0
par(mar = c(0,0,0,0))  

# Initialize plot & print text
plot(c(0,1), axes = FALSE, main = "", xlab = "", ylab = "", col = "white")
text(0.95, 0.42, "Test", pos = 4, family = "mono", font = 2)

# Close the magick image device
dev.off() 

# Convert to grayscale & extract pixelmatrix as integers
img <- image_convert(img, colorspace = "gray")  
target <- drop(as.integer(img[[1]]))