Ryan Timpe가 이미지를 레고형태로 표현하는 R 코드를 작성했다. GitHub LEGO Mosaics from images using R and #tidyverse 사이트에서 관련된 내용을 확인할 수 있다.
민주당 은수미 성남시장 후보 인물정보 대표 사진을 네이버에서 다운로드 받아 이를 저장한다.
JPEG 이미지라 이를 jepg
팩키지 readJPEC()
함수로 불러 와서 제대로 불러왔는지 확인한다.
# 0. 환경설정 -----
# source("0_Functions.R")
library(jpeg)
# 1. 이미지 다운로드 -----
## 이미지 주소
esm_url <- "https://search.pstatic.net/common?type=a&size=120x150&quality=95&direct=true&src=http%3A%2F%2Fsstatic.naver.net%2Fpeople%2F62%2F201804091126335951.jpg"
download.file(esm_url, destfile="fig/esm.jpg", mode = 'wb')
# 2. 이미지 살펴보기 -----
esm_photo <- readJPEG("fig/esm.jpg")
esm_dim <- dim(esm_photo)[2:1] # 사진 [x, y] 차원
plot(1,1, xlim=c(1,esm_dim[1]),ylim=c(1,esm_dim[2]),asp=1,type='n',xaxs='i',yaxs='i',xaxt='n',yaxt='n',xlab='',ylab='',bty='n')
rasterImage(esm_photo,1,1,esm_dim[1],esm_dim[2])
다운로드 받은 사진 이미지크기가 \(120 \times 150\) 이라 크기를 정해주고 이를 레고이미지로 변환시킨다.
# 3. 레고 이미지 -----
esm_mosaic <- readJPEG("Images/esm.jpg") %>%
scale_image(c(120, 150)) %>% # c(W, H) for rectangle
legoize() %>%
collect_bricks("stacked")
esm_gg <- esm_mosaic %>% display_set("은수미")
ggsave("Images/esm_lego.png")