Simulador de pantalla de Game Boy en ggplot2 con ggboy

Librería

ggboy

Autor principal

Chris Holmes

Estilo de pantalla Game Boy

El paquete ggboy intenta recrear el estilo original de la pantalla de la Game Boy (DMG-01). La función principal de la librería es ggboy, que transforma la imagen de entrada de la siguiente manera.

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321//images/favicon.png"

# Gráfico
ggboy(img)

Imagen con estética de Game Boy en ggplot2

Por defecto, la función aplica un difuminado a la imagen. Si quieres establece dither = FALSE para evitarlo.

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321//images/favicon.png"

# Gráfico
ggboy(img, dither = FALSE)

Imagen sin difuminado

Ajuste de imagen

Las imágenes pueden ser ajustadas de diferentes maneras, como incrementar o reducir la resolución (res), el número de colores (ncols) o el recorte si no se usa un frame.

Ajustes del simulador de Game Boy

Alta resolución

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321//images/favicon.png"

# Gráfico
ggboy(img, res = 300, ncols = 50)

Número de colores de la imagen

Cambiando el número de colores

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321//images/favicon.png"

# Gráfico
ggboy(img, ncols = 2, frame = 0)

No recortar la imagen

Evitar recorte

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321//images/favicon.png"

# Gráfico
ggboy(img, crop = FALSE)

Paletas de colores

Hay varias paletas de colores que puedes seleccionar tal y como se muestra en la imagen siguiente. También puedes pasar un vector de colores como en la función scale_fill_gradientn.

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)
# install.packages("patchwork")
library(patchwork)
# install.packages("ggplot2")
library(ggplot2)
# install.packages("purrr")
library(purrr)

# Imagen 
img <- "http://localhost:4321//images/favicon.png"

# Gráfico
wrap_plots(map(seq_along(palettes),
               ~ggboy(img, palette = .x) +
                 labs(title = .x)))

ggboy paletas de colores

Tipos de frames

Existen seis tipos distintos de frames (marcos) disponibles, que pueden ser seleccionados con el argumento frame. Los posibles valores son 0, 13, 14, 19, 20, 21 y 22.

ggboy tipos de frames

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)
# install.packages("ggplot2")
library(ggplot2)

# Gráfico
frames_df %>%
  ggplot(aes(x, y, fill = z))+
  geom_raster() +
  facet_wrap(~frame_n) +
  scale_y_reverse() +
  scale_fill_gradient(low = "black", high = "white")+
  coord_equal() +
  theme(legend.position = "none",
        axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank())

Cuerpo

La librería también permite incorporar una imagen dentro del cuerpo de una imagen real de la Game Boy, estableciendo graphic = TRUE.

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321/images/favicon.png"

# Gráfico
ggboy(img, graphic = TRUE)

ggboy imagen con el cuerpo de la Game Boy

Gifs

ggboy con imagen gif

Hay una función adicional llamada ggboy_gif que permite simular la estética de la Game Boy en gifs.

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321/images/gif/pokemon.gif"

# Gráfico
ggboy_gif(img)

ggboy gif con cuerpo

Incluso puedes especificar otros argumentos como en la función anterior, como el cuerpo de la Game Boy.

# install.packages("remotes")
# remotes::install_github("cj-holmes/ggboy")
library(ggboy)

# Imagen 
img <- "http://localhost:4321/images/gif/pokemon.gif"

# Gráfico
ggboy_gif(img, graphic = TRUE)

También te puede interesar