如何将图像存储在R中的目录中?

时间:2016-06-16 14:35:32

标签: r

每当用户点击按钮时,我都会尝试存储多张图片。现在我有

#Define path to store the images

image.out.path <- "/data/documents/images/diedata/testimage.png"
image.connection <- file(image.out.path, open="wb", raw=TRUE)
#create an image, where input.image is an input parameter that takes a photo
writeBin(input.image, image.connection)

当前代码只存储一个图像,如果用户点击一个按钮,它将替换testimage.png中的图像。而不是替换,我如何将更多图像添加到目录中?

2 个答案:

答案 0 :(得分:0)

自然是保持一个计数器变量,比如image_count,最初设置为1,然后替换行

image.out.path <- "/data/documents/images/diedata/testimage.png"

由两行

组成
image.out.path <- paste0("/data/documents/images/diedata/testimage",image_count,".png")
image_count <- image_count + 1

答案 1 :(得分:0)

我认为可以有一些方法

1)生成RND添加到文件名

image.out.path <- paste0("/data/documents/images/diedata/testimage_",runif(1),".png")

但这不是100%好方法

2)为文件名添加时间

image.out.path <- paste0("/data/documents/images/diedata/testimage_",Sys.time(),".png")

但是只有一个文件在秒。

3)在目录中选择文件,如果已存在则添加索引

只有在您拥有正确的文件名格式

时才能正常工作
all_files=list.files(pattern = "test")
max_ind=as.numeric(substring(all_files,gregexpr("_",all_files)[[1]]+1,gregexpr("\\.",all_files)[[1]]-1))
max_ind=max_ind+1
image.out.path <- paste0("test_",max_ind,".png")

如果您在一个会话中创建所有文件,则只需max_ind=max_ind+1每个按钮单击