Как загрузить изображения из столбца postgres bytea, используя R или python? - PullRequest
0 голосов
/ 09 марта 2020

По сути, у меня есть локальная база данных postgres с таблицей с именем person и столбцом с именем image, представляющим собой столбец bytea, содержащий изображение .png. Я не использую postgresql и хочу загрузить изображения, которые будут именами из другого столбца с суффиксом ".png"

Все ответы, которые у меня есть найдено : postgres побочные ответы, и я действительно не могу go с ними. Есть ли в R или python пакет authenti c, который может загружать изображения?

1 Ответ

0 голосов
/ 10 марта 2020

Попробуйте это:

# Packages we need
require("RPostgreSQL")
require('jsonlite')

# Create connection to database
pgConn <- dbConnect(PostgreSQL(), dbname="your_db", host='127.0.0.1')

# Query string - edit this to suit your needs
# Important thing here is that we're getting Postgres to base64 encode
#   the image data (converting it from binary to text)
thisQ = "SELECT encode(imageColumn, 'base64') AS image from test_table WHERE name='image';"

# Execute the SELECT query and fetch the results
resultSet = dbSendQuery(pgConn, thisQ)
resultData <- fetch(resultSet, n=-1)
dbClearResult(resultSet)

# Get the image data as text
imageData <- resultData$image

# Decode from base64 back to binary
imageDataDecoded <- jsonlite::base64_dec(imageData)

# Create a file connection and write the binary data to disk using mode "wb".
write.filename = file("/temp/file.png", "wb")
writeBin(imageDataDecoded, write.filename)
close(write.filename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...