Last chance! 50% off unlimited learning
Sale ends in
Generate brick mosaics from an image or matrix with customization options.
image_to_mosaic(
img,
img_size = 48,
color_table = NULL,
method = "cie94",
color_palette = c("universal", "generic", "special"),
trans_bg = "White",
dithering = FALSE,
contrast = 1,
use_bricks = NULL,
brightness = 1,
warhol = 1:3
)
Size of output image in pixel, where one pixel = one 'brick'. Use a single value (e.g. 48
) for a square image with 48 pixels on each side.
Use an array of two values for a rectangular image c(width, height)
.
Defaults to lego_colors
. Data frame of brick colors to map onto image. Must contain Name and R, G, B channels.
See attached data lego_colors
as examples.
The method to use for comparison. Options are 'euclidean', 'cie1976', 'cie94', 'cie2000', or 'cmc'.
See compare_colour
.
Brick color rarity to use. Defaults to all colors: 'universal' (most common), 'generic', and 'special' (least common). This is useful when trying to build the mosaic out of real bricks.
Use "bw" for only grayscale bricks. Ignored if a color_table
is supplied.
If img
is a png has a transparent background, name of color to replace the background.
Improves color of large, photo-realistic mosaics.
For theme = "bw"
. A value >1 will increase the contrast of the image while a positive value <1 will decrease the contrast.
Array of brick sizes to use in mosaic. Defaults to c('4x2', '2x2', '3x1', '2x1', '1x1')
`.
A value >1 will increase the brightness of the image while a positive value <1 will decrease the brightness.
Array of values c(1, 2, 3)
associated with R, G, B color channels. Swap values in array to swap color channels for a fun visual effect.
A list with element Img_lego
containing a data frame of the x- & y-coordinates, R, G, B channels, and mapped color of each brick (pixel).
Other Mosaics:
build_mosaic()
# NOT RUN {
# Import a jpeg or png
demo_file <- system.file("extdata", "demo_img.jpg",
package = "brickr", mustWork = TRUE)
demo_image <- jpeg::readJPEG(demo_file)
#Create a 24x24 mosaic
# }
# NOT RUN {
demo_image %>%
image_to_mosaic(img_size = 24) %>%
build_mosaic()
# }
# NOT RUN {
#Only use the two more common tiers of colors
# }
# NOT RUN {
demo_image %>%
image_to_mosaic(img_size = 24,
color_palette = c("universal", "generic")) %>%
build_mosaic()
# }
# NOT RUN {
#Be more prescriptive with colors using 'color_table'.
# Here, we prevent all blues from being used
lego_colors_no_blue = lego_colors %>%
dplyr::filter(!grepl("[Bb]lue|[Aa]zur", Color))
# }
# NOT RUN {
demo_image %>%
image_to_mosaic(img_size = 24,
color_table = lego_colors_no_blue) %>%
build_mosaic()
# }
# NOT RUN {
#Color matching is done with the 'farver' package. There are different method.
# Change the method to euclidean (RGB distance matching)
# }
# NOT RUN {
demo_image %>%
image_to_mosaic(img_size = 24,
method = "euclidean") %>%
build_mosaic()
# }
# NOT RUN {
#Change the default size of bricks to use.
# In this extreme example, use 4x6s for the background, 1x1 everywhere else
# }
# NOT RUN {
demo_image %>%
image_to_mosaic(img_size = 24,
use_bricks = c("4x6")) %>%
build_mosaic()
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab