as_bm_pixmap() casts an object to a [bm_pixmap()] object.
Usage
as_bm_pixmap(x, ...)
# S3 method for class 'character'
as_bm_pixmap(
x,
...,
direction = "left-to-right, top-to-bottom",
font = bm_font(),
hjust = "left",
vjust = "top",
compose = TRUE,
pua_combining = character(0)
)
# Default S3 method
as_bm_pixmap(x, ...)
# S3 method for class 'array'
as_bm_pixmap(x, ...)
# S3 method for class 'bm_bitmap'
as_bm_pixmap(x, ..., col = getOption("bittermelon.col", col_bitmap))
# S3 method for class 'bm_pixmap'
as_bm_pixmap(x, ...)
# S3 method for class 'glyph_bitmap'
as_bm_pixmap(x, ..., col = getOption("bittermelon.col", col_bitmap))
# S3 method for class 'grob'
as_bm_pixmap(x, ..., width = 16L, height = 16L, png_device = NULL)
# S3 method for class '`lofi-matrix`'
as_bm_pixmap(x, ..., col = getOption("bittermelon.col", col_bitmap))
# S3 method for class '`magick-image`'
as_bm_pixmap(x, ...)
# S3 method for class 'matrix'
as_bm_pixmap(x, ...)
# S3 method for class 'maze'
as_bm_pixmap(
x,
...,
walls = FALSE,
start = NULL,
end = NULL,
solve = !is.null(start) && !is.null(end),
col = getOption("bittermelon.col", col_bitmap)
)
# S3 method for class 'pattern_square'
as_bm_pixmap(x, ..., col = getOption("bittermelon.col", col_bitmap))
# S3 method for class 'pattern_weave'
as_bm_pixmap(x, ..., col = getOption("bittermelon.col", col_bitmap))
# S3 method for class 'pixmapGrey'
as_bm_pixmap(x, ...)
# S3 method for class 'pixmapIndexed'
as_bm_pixmap(x, ...)
# S3 method for class 'pixmapRGB'
as_bm_pixmap(x, ...)
# S3 method for class 'nativeRaster'
as_bm_pixmap(x, ...)
# S3 method for class 'pixeltrix'
as_bm_pixmap(x, ...)
# S3 method for class 'raster'
as_bm_pixmap(x, ...)Arguments
- x
an Object
- ...
Potentially passed to other methods e.g.
as_bm_pixmap.default()passes...toas.raster().- direction
For purely horizontal binding either "left-to-right" (default) or its aliases "ltr" and "lr" OR "right-to-left" or its aliases "rtl" and "rl". For purley vertical binding either "top-to-bottom" (default) or its aliases "ttb" and "tb" OR "bottom-to-top" or its aliases "btt" and "bt". For character vectors of length greater than one: for first horizontal binding within values in the vector and then vertical binding across values in the vector "left-to-right, top-to-bottom" (default) or its aliases "lrtb" and "lr-tb"; "left-to-right, bottom-to-top" or its aliases "lrbt" and "lr-bt"; "right-to-left, top-to-bottom" or its aliases "rltb" and "rl-tb"; or "right-to-left, bottom-to-top" or its aliases "rlbt" and "rl-bt". For first vertical binding within values in the vector and then horizontal binding across values "top-to-bottom, left-to-right" or its aliases "tblr" and "tb-lr"; "top-to-bottom, right-to-left" or its aliases "tbrl" and "tb-rl"; "bottom-to-top, left-to-right" or its aliases "btlr" and "bt-lr"; or "bottom-to-top, right-to-left" or its aliases "btrl" and "bt-rl". The
directionargument is not case-sensitive.- font
A
bm_font()object that contains all the characters withinx.- hjust
Used by
bm_extend()if bitmap widths are different.- vjust
Used by
bm_extend()if bitmap heights are different.- compose
Compose graphemes using
bm_compose().- pua_combining
Passed to
bm_compose().- col
Character vector of R color specifications.
- width
Desired width of bitmap
- height
Desired height of bitmap
- png_device
A function taking arguments
filename,width, andheightthat starts a graphics device that saves a png image with a transparent background. By default will useragg::agg_png()if available else the “cairo” version ofgrDevices::png()if available else justgrDevices::png().- walls
If
TRUEthe values of 1L denote the walls and the values of 0L denote the paths.- start, end
If not
NULLmark thestartandendas value 2L. Seemazing::find_maze_refpoint().- solve
If
TRUEthen mark the solution path fromstarttoendas value 3L. Seemazing::solve_maze().
Value
A bm_pixmap() object.
Examples
crops <- farming_crops_16x16()
corn <- crops$corn$portrait
is_bm_pixmap(corn)
#> [1] TRUE
all.equal(corn, as_bm_pixmap(as.array(corn)))
#> [1] TRUE
all.equal(corn, as_bm_pixmap(as.raster(corn)))
#> [1] TRUE
if (requireNamespace("farver", quietly = TRUE)) {
all.equal(corn, as_bm_pixmap(as.raster(corn, native = TRUE)))
}
#> [1] TRUE
if (requireNamespace("magick", quietly = TRUE)) {
all.equal(corn, as_bm_pixmap(magick::image_read(corn)))
}
#> [1] TRUE
if (requireNamespace("mazing", quietly = TRUE) &&
cli::is_utf8_output() &&
cli::num_ansi_colors() >= 8L) {
pal <- grDevices::palette.colors()
pm <- as_bm_pixmap(mazing::maze(24L, 32L),
start = "top", end = "bottom",
col = c(pal[6], "white", pal[7], pal[5]))
pm <- bm_pad(pm, sides = 1L)
print(pm, compress = "v", bg = "white")
}
#> ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
#> █▀▀█▀▀▀▀▀▀▀▀▀█▀▀██▀▀▀▀▀▀▀▀▀▀▀▀▀▀██▀▀▀██▀▀█▀▀▀███▀██▀▀█▀██▀▀▀▀▀▀██
#> ██▀▀██▀▀▀██▀▀▀██▀▀██▀███▀▀██▀▀█▀▀▀██▀▀██▀▀██▀▀██████▀▀█▀▀▀▀▀▀▀▀██
#> █▀▀█████████▀▀▀▀██▀▀█▀█▀▀█████▀▀▀▀▀▀██▀▀██████▀██▀▀▀██▀█▀▀▀▀██▀▀█
#> ██▀▀█████████▀▀▀▀███▀▀▀▀▀▀███▀▀███▀█████▀▀▀▀█▀██▀███▀▀█▀▀▀▀▀▀▀███
#> ████▀▀████████▀▀▀██▀▀███▀█████▀▀████▀▀█▀▀▀▀▀▀██▀█████▀▀▀▀█▀▀▀▀▀██
#> ███▀▀▀▀██▀▀▀████▀▀███▀▀▀█████▀▀▀▀▀████▀██▀▀▀▀▀▀▀▀▀█▀▀▀▀▀▀▀██▀▀███
#> ████▀▀▀▀██▀▀▀▀███▀▀▀▀███▀▀█▀▀▀▀▀▀▀▀▀██████▀▀▀▀▀▀▀▀▀██▀▀█▀███▀▀▀▀█
#> ██▀▀██▀▀▀▀▀██▀▀▀▀█▀▀▀▀████▀▀▀▀▀▀▀▀▀██████▀▀█████▀██▀▀████▀▀▀██▀██
#> ███████▀▀██▀▀▀▀█████▀▀▀▀█▀▀▀▀███▀██▀▀▀████▀▀▀▀███▀▀████▀▀▀▀▀▀▀███
#> █████▀▀███▀▀▀▀█████▀▀▀▀███▀████▀██▀▀██▀▀██▀▀██▀▀███▀▀▀█▀▀▀▀█▀▀███
#> ███▀▀█▀▀████▀▀▀▀████▀▀█▀▀▀███▀▀███▀██▀▀█████▀▀██▀█▀▀██▀█▀██▀▀████
#> █▀▀██▀▀▀▀██▀▀▀▀██▀▀▀██▀▀▀██▀▀████▀██▀██▀▀▀█▀▀███████▀▀███▀▀▀▀████
#> ███▀▀██▀▀██▀▀██▀▀▀▀▀▀▀▀███▀████▀▀█▀▀█▀▀█▀▀██▀▀███▀█▀▀█████▀▀▀▀███
#> █▀▀██▀▀██▀▀▀▀▀▀▀▀███▀██████▀████▀▀██▀██▀██▀▀████▀█▀▀█████▀██▀▀▀▀█
#> ██▀▀▀████▀▀▀▀▀▀▀▀██████▀████▀▀██▀▀███▀▀████▀▀▀▀▀█▀▀▀▀▀█▀▀████▀▀██
#> ██▀██▀█▀▀▀▀▀▀▀▀█████████▀▀█▀▀█████▀▀██▀▀█▀▀▀▀███▀▀▀▀▀▀▀██▀▀▀▀████
#> ███▀▀███▀▀▀▀▀▀▀▀█▀██████▀███▀▀██████████▀█▀▀▀▀████▀▀▀▀█▀▀▀▀██████
#> ███████▀▀██▀▀▀▀▀▀█▀▀███████▀▀▀▀▀████████████▀▀▀▀█▀▀▀▀█▀███▀▀█▀▀██
#> █████▀▀██▀▀▀▀▀▀▀▀▀██▀▀█▀█▀▀█▀██████▀▀▀▀▀█████▀▀█▀▀▀▀▀▀███▀▀███▀▀█
#> █▀▀█████▀███▀▀▀█▀▀█▀▀▀▀███▀▀█▀▀██▀▀█████▀▀█▀▀█████▀██▀▀▀▀████▀▀██
#> ███▀▀████▀████▀███▀▀▀▀▀▀███▀▀▀▀▀▀████▀▀▀██▀████████▀▀██▀▀▀███▀▀▀█
#> ██▀████▀▀▀▀▀███▀█▀▀▀▀███▀▀▀▀▀██████▀▀▀▀████████████▀▀▀▀███▀▀█▀▀██
#> █████▀▀██▀▀█████▀█▀▀███▀██▀▀▀▀██▀▀█▀▀██▀▀▀█▀▀▀██████▀██▀▀▀██▀████
#> █▀█▀▀▀▀▀▀▀▀▀█▀▀▀█▀▀▀▀▀▀▀▀▀█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█▀▀▀█▀▀▀▀▀▀▀█▀▀▀█
#>
if (requireNamespace("gridpattern", quietly = TRUE) &&
cli::is_utf8_output() &&
cli::num_ansi_colors() >= 256L) {
s <- gridpattern::pattern_square(subtype = 8L, nrow = 8L, ncol = 50L)
pm <- as_bm_pixmap(s, col = grDevices::rainbow(8L))
print(pm, compress = "vertical")
}
#> ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
#> ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
#> ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
#> ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀