Восстановить файл PNG, сохраненный как RAW в базе данных SQL

Я работаю над написанием отчета из базы данных SQL (Windows SQL Server), который потребует от определенных людей подписать отчет перед отправкой его клиенту. Мы надеемся создать систему, в которой эти люди смогут авторизовать свою подпись в базе данных, а затем мы сможем использовать изображение их подписи, сохраненное в базе данных, и поместить его в отчет, сгенерированный LaTeX.

Изображения подписи создаются в формате PNG, затем сохраняются в базе данных в поле с типомvarbinary, Чтобы использовать подпись в отчете, мне нужно восстановить PNG в файл, с которым я могу\includegraphics в латексе.

К сожалению, я не могу воссоздать PNG из базы данных. Поскольку я не могу опубликовать подпись, мы будем использовать изображение ниже в качестве примера.

С этим изображением на моем компьютере я могу прочитать файл в необработанном виде, записать его в другой файл и получить то же изображение при открытии нового файла.

#* It works to read the image from a file and rewrite it elsewhere
pal <- readBin("C:/[filepath]/ColorPalette.png",
          what = "raw", n = 1e8)
writeBin(pal,
         "C:/[filepath]/colors.png",
         useBytes=TRUE)

Теперь я сохранил это изображение в базе данных и, используя RODBC, могу извлечь его так:

#*** Capture the raw from the database
con <- odbcConnect("DATABASE")
Users <- sqlQuery(con, "SELECT * FROM dbo.[User]")

db_pal <- Users$Signature[Users$LastName == "MyName"]

#*** Write db_pal to a file, but the image won't render
#*** Window Photo Viewer can't open this picture because the file appears to be damaged, corrupted, or is too large (12KB)

writeBin(db_pal[[1]],
         "C:/[filename]/db_colors.png",
         useBytes=TRUE)

Объектыpal а такжеdb_pal определены здесь вэтот гист (они слишком длинные, чтобы поместиться здесь в допустимом пространстве)

Замечания:db_pal список одного необработанного вектора Кроме того, это явно отличается от необработанного вектораpal

> length(pal)
[1] 2471
> length(db_pal[[1]])
[1] 9951

Любые мысли о том, что мне, возможно, нужно сделать, чтобы вытащить это изображение из базы данных?

Ответы на вопрос(1)

Ваш ответ на вопрос