if (require("grid", quietly = TRUE) && capabilities("png")) {
font_file <- system.file("fonts/spleen/spleen-8x16.hex.gz", package = "bittermelon")
font <- read_hex(font_file)
one <- font[[str2ucp("1")]]
circle_large <- as_bm_bitmap(circleGrob(r = 0.50), width = 16L, height = 16L)
circle_small <- as_bm_bitmap(circleGrob(r = 0.40), width = 16L, height = 16L)
circle_outline <- bm_mask(circle_large, circle_small)
print(circle_outline)
}
if (capabilities("png")) {
# U+2776 "Dingbat Negative Circled Digit One"
circle_minus_one <- bm_mask(circle_large, one)
print(circle_minus_one)
}
# Can also do "alpha" mask
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
print(square_minus_lower_left)
if (capabilities("png")) {
circle_minus_lower_left <- bm_mask(circle_large, square_minus_lower_left, mode = "alpha")
print(circle_minus_lower_left)
}
if (capabilities("png")) {
m <- matrix(grDevices::rainbow(8L), byrow = TRUE, ncol = 8L, nrow = 8L)
rainbow <- bm_expand(as_bm_pixmap(m), 2L)
circle_rainbow <- bm_mask(rainbow, circle_large, mode = "alpha")
}
if (cli::is_utf8_output() &&
cli::num_ansi_colors() >= 256L &&
capabilities("png")) {
print(circle_rainbow, compress = "v")
}
Run the code above in your browser using DataLab