library(magick)
library(tidyverse)
library(magrittr)
# list files in a folder
path="figures/stackoverflow"
image_files<-list.files(path=path, pattern = ".tif$", recursive = TRUE,full.names = TRUE, include.dirs = TRUE)
image_files
# Extract sub directory Clean Names
by_who<-sub(pattern = "figures/stackoverflow/", replacement = "\\1", dirname(image_files))
by_who
## Extract File names
clean_names<-sub(pattern = "(.*)\\..*$", replacement = "\\1", basename(image_files))
clean_names
# make directory for new png files
if(!dir.exists("figures/stackoverflow_pngs")){dir.create("figures/stackoverflow_pngs")} else{print("dir already exists!")}
all_images<-list()
for (i in 1:length(image_files)){
# Read the images from the list created in a loop
k <- image_read(image_files[i]) %>%
image_contrast(sharpen = 2) %>%
image_normalize() %>%
image_enhance() %>%
image_annotate(boxcolor = "pink",
text=paste("Made by",":",by_who[i],"--", clean_names[i]),
#clean_names[i],
color = "purple",
font = "comic sans",
style = "italic",
size = 30,
#refcolor = "navyblue",
weight = 500)%>%
image_convert(format = "png")%T>%
image_write(
path = paste0("figures/stackoverflow_pngs/", clean_names[i], ".png"),
density = 300,
format = "png"
)
all_images<-k #
print(k)
}
我的图像通常以.tif格式为.tif,因此我有必要向图像显示最初的处理。同样,我的文件夹的结构是
"\figures\stackoverflow\A\image_1.tif"
,我在图像的最终标签中同时使用了Basename和子文件夹名称。
for (i in seq_along(image_list)) {
slide_name <- paste0("slide_", i)
image <- image_list[[i]]
by_who_value <- by_who[i]
clean_name_value <- clean_names[i]
cat('\n---\n') # Start a new slide
# Generate the R code for the current slide
code_chunk <- paste0('knitr::include_graphics(paste0("figures/pngs/", "', clean_name_value,'", ".png"))\n')
cat(code_chunk)
}
---
class: inverse
<center><img src="figures/image_1.png" /></center>
.footnote[`paste("Sampled by",":",by_who[i],"--", clean_names[i])`]
---
试图: 这些图像在路径上
images/