使用 r 从 SQL 服务器数据库导入并显示 jpeg

Import and display a jpeg from a SQL Server database using r

工作要求我们从 SQL 服务器数据库导入一系列 jpeg 文件,以便在我们拥有的仪表板产品上显示。我们正在使用 R 来查询我们的数据库并构建我们的仪表板,因此我们需要能够从 SQL 服务器导入图像并显示它们(或至少导出到本地系统文件夹)。

我们可以下拉并显示标准 table 信息,例如文件名、文件大小、文件类型和文件数据 <raw>,但我们很难理解如何提取和显示jpeg 文件。

我知道它们以 varbinary 列类型存储在数据库中,但标准 read/writeJPEG() 似乎不喜欢没有文件路径的任何东西,例如提取数据直接从 SQL 服务器数据库导入 r.

尝试提取单个文件以导出到本地文件夹,但加载图像时出现同样的问题。

对如何进行有什么建议吗?

jpeg::readJPEG 函数说它可以从原始向量中读取,而您的 data.frame 中似乎有原始向量。所以尝试像

这样的东西
jpeg::readJPEG(dd$FileData[[1]])

对于可重现的内容,这里有一个示例,它从 jpeg 包中读取样本图像作为原始向量,然后将其转换为图像对象

#sample data
fname <- system.file("img", "Rlogo.jpg", package="jpeg")
filedataraw <- readBin(fname, "raw", file.info(fname)$size)

现在我们已经创建了一个示例原始向量(就像可能存储在您的数据框中的那个),我们可以使用 jpeg

解析图像数据
img <- jpeg::readJPEG(filedataraw)
plot(1:2, type='n')
rasterImage(img, 1.2, 1.27, 1.8, 1.73)

如果目标只是写入文件,则根本不需要将文件解析为 JPEG。您可以将字节写入磁盘。

writeBin(filedataraw, "sample.jpeg")