绘图来自 BLOB/RAW
Plot image from BLOB/RAW
我正在尝试使用 ROracle 包从数据库中提取图像。图像以 BLOB 形式存储在数据库中。
我已经设法将图像以 "raw" 格式导入 R。有没有办法将它从原始转换为 jpeg/png?
这是我目前拥有的:
con <- dbConnect(drv, username = user,
password = pw, dbname=connect.string)
query.string <- paste("select db.img",
"from database db",
"where db.id = '01234567')")
## run a SQL statement by first creating a resultSet object
rs <- dbSendQuery(con, query.string)
## fetch records from the resultSet into a data.frame
data <- fetch(rs)
## extract all rows
str(data)
> str(data)
'data.frame': 1 obs. of 1 variable:
$ DATA:List of 1
..$ : raw ff d8 ff e1 ...
理想情况下,我可以这样做:
pic <- rawToJpeg(unlist(data)[1])
这样我就可以 plot/save 图片
考虑使用 writeBin
将二进制数据传输到文件:
rawToJpeg <- function(pic_data) {
f = file(paste0('output.jpeg'), "wb") # OPEN FILE CONNECTION
writeBin(pic_data, con = f, useBytes=TRUE) # TRANSFER RAW DATA
close(f) # CLOSE FILE CONNECTION
}
rawToJpeg(unlist(data)[1])
我正在尝试使用 ROracle 包从数据库中提取图像。图像以 BLOB 形式存储在数据库中。
我已经设法将图像以 "raw" 格式导入 R。有没有办法将它从原始转换为 jpeg/png?
这是我目前拥有的:
con <- dbConnect(drv, username = user,
password = pw, dbname=connect.string)
query.string <- paste("select db.img",
"from database db",
"where db.id = '01234567')")
## run a SQL statement by first creating a resultSet object
rs <- dbSendQuery(con, query.string)
## fetch records from the resultSet into a data.frame
data <- fetch(rs)
## extract all rows
str(data)
> str(data)
'data.frame': 1 obs. of 1 variable:
$ DATA:List of 1
..$ : raw ff d8 ff e1 ...
理想情况下,我可以这样做:
pic <- rawToJpeg(unlist(data)[1])
这样我就可以 plot/save 图片
考虑使用 writeBin
将二进制数据传输到文件:
rawToJpeg <- function(pic_data) {
f = file(paste0('output.jpeg'), "wb") # OPEN FILE CONNECTION
writeBin(pic_data, con = f, useBytes=TRUE) # TRANSFER RAW DATA
close(f) # CLOSE FILE CONNECTION
}
rawToJpeg(unlist(data)[1])