2016-10-09 8 views
1

私はhereからダウンロードできる以下のデータフレームを持っています。列image_pathには、base64形式のjpgファイルがあります。画像を抽出してローカルフォルダに保存したいと思います。私はherehereのコードを使ってみました。ベースコードJPGをディスクにR - Shinyで保存

2番目の画像はブラウザで完全に開きますが、ファイルをローカルに保存する方法がわかりませんでした。私は次のコードを試しました:

以下は、実行されるだけですが、イメージファイルは作成されず、エラーも表示されません。 tags$img(src = df$image_path[1])を実行して画像を生成するかどうかを確認しましたが、それはありません。私はタグを理解しています$ imgは光沢の中の関数であり、uiの中で(@daataliの示唆したように)渡しても動作しますが、ファイルをローカルに保存する方法はわかりません。

私が望むのは、光沢のあるサーバー環境の内側からforループを実行して、イメージをファイル名としてID番号を使用してjpgとしてローカルに保存することです。

これは完全に初心者であれば、私は画像で作業したことはありません。

答えて

1

これは、base30文字列からイメージを作成し、というファイルを現在の作業ディレクトリ、サブフォルダ "/ images /"に保存します。 This article describes pretty well how to save files locally in Shiny.

library(shiny) 
library(base64enc) 
filepath <- "images/" 
dir.create(file.path(filepath), showWarnings = FALSE) 
df <- read.csv("imagefiletest.csv", header=T, stringsAsFactors = F) 
for (i in 1:nrow(df)){ 
    if(df[i,"image_path"] == "NULL"){ 
    next 
    } 
    testObj <- strsplit(df[i,"image_path"],",")[[1]][2] 
    inconn <- testObj 
    outconn <- file(paste0(filepath,"image_id",df[i,"id"],".png"),"wb") 
    base64decode(what=inconn, output=outconn) 
    close(outconn) 
} 

enter image description here

+0

おかげトン....本当にこれは本当にありがとうございました....役立ちます...最後の2日間で私の頭を壊したことがあり....感謝しています。 – Apricot

関連する問題