使用 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")
工作要求我们从 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")