font_file <- system.file("fonts/spleen/spleen-8x16.hex.gz", package = "bittermelon")
font <- read_hex(font_file)
test_that("bm_mask()", {
skip_if_not(cli::is_utf8_output())
skip_if_not_installed("farver")
skip_if_not_installed("magick")
skip_if_not_installed("withr")
withr::local_options(bm_options(default = TRUE))
one <- font[[str2ucp("1")]]
circle_large <- as_bm_bitmap(grid::circleGrob(r = 0.50), width = 16L, height = 16L)
circle_small <- as_bm_bitmap(grid::circleGrob(r = 0.40), width = 16L, height = 16L)
circle_outline <- bm_mask(circle_large, circle_small)
# U+2776 "Dingbat Negative Circled Digit One"
circle_minus_one <- bm_mask(circle_large, one)
square_full <- bm_bitmap(matrix(1L, nrow = 16L, ncol = 16L))
square_minus_lower_left <- square_full
square_minus_lower_left[1:8, 1:8] <- 0L
circle_minus_lower_left <- bm_mask(circle_large, square_minus_lower_left, mode = "alpha")
rainbow <- matrix(grDevices::rainbow(8L), byrow = TRUE, ncol = 8L, nrow = 8L)
pm <- bm_expand(as_bm_pixmap(rainbow), 2L)
r <- as.raster(pm)
nr <- as.raster(pm, native = TRUE)
mi <- magick::image_read(pm)
pmm <- bm_mask(pm, circle_large, mode = "alpha")
rm <- bm_mask(r, circle_small, mode = "luminance")
nrm <- bm_mask(nr, circle_minus_lower_left, mode = "alpha")
mim <- bm_mask(mi, square_minus_lower_left, mode = "luminance")
verify_output("txt/bm_mask.txt", {
print(circle_outline, px = px_ascii)
print(circle_minus_one, px = px_ascii)
print(circle_minus_lower_left, px = px_ascii)
print(pmm, compress = "v")
bm_print(rm, compress = "v")
bm_print(nrm, compress = "v")
bm_print(mim, compress = "v")
}, unicode = TRUE, crayon = TRUE)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.