bm_compress | R Documentation |
Compresses bm_bitmap()
objects by a factor of two by re-mapping to a “block elements” scheme.
For pixmap objects like bm_pixmap()
we simply shrink the pixmap by a factor of two using bm_distort()
.
bm_compress(x, direction = "vertical", ...)
## S3 method for class 'bm_bitmap'
bm_compress(x, direction = "vertical", ...)
## S3 method for class 'bm_pixmap'
bm_compress(x, direction = "vertical", ..., filter = "Point")
## S3 method for class ''magick-image''
bm_compress(x, direction = "vertical", ..., filter = "Point")
## S3 method for class 'nativeRaster'
bm_compress(x, direction = "vertical", ..., filter = "Point")
## S3 method for class 'raster'
bm_compress(x, direction = "vertical", ..., filter = "Point")
## S3 method for class 'bm_list'
bm_compress(x, ...)
x |
Either a |
direction |
Either "vertical" or "v", "horizontal" or "h", OR "both" or "b". |
... |
Additional arguments to be passed to or from methods. |
filter |
Passed to |
Depending on direction
we shrink the bitmaps height and/or width by
a factor of two and re-encode pairs/quartets of pixels to a “block elements” scheme.
If necessary we pad the right/bottom of the bitmap(s) by
a pixel. For each pair/quartet we determine the most-common non-zero element
and map them to a length twenty set of integers representing the “block
elements” scheme. For integers greater than zero we map it to higher twenty
character sets i.e. 1
's get mapped to 0:19, 2
's get mapped to 20:39, 3
's
get mapped to 40:59, etc. Using the default px_unicode
will give you the exact
matching “Block Elements” glyphs while px_ascii
gives the closest ASCII approximation.
Hence print.bm_bitmap()
should produce reasonable results for compressed bitmaps if
either of them are used as the px
argument.
Depending on x
either a bm_bitmap()
, bm_font()
, bm_list()
, magick-image, "nativeRaster", bm_pixmap()
, or raster object.
See https://en.wikipedia.org/wiki/Block_Elements for more info on the Unicode Block Elements block.
font_file <- system.file("fonts/spleen/spleen-8x16.hex.gz", package = "bittermelon")
font <- read_hex(font_file)
r <- font[[str2ucp("R")]]
print(r)
print(bm_compress(r, "vertical"))
print(bm_compress(r, "horizontal"))
print(bm_compress(r, "both"))
img <- png::readPNG(system.file("img", "Rlogo.png", package="png"))
logo <- as_bm_pixmap(img)
if (cli::is_utf8_output() &&
cli::num_ansi_colors() > 256L &&
requireNamespace("magick", quietly = TRUE)) {
logo_c <- bm_compress(pm, "both", filter = NULL)
print(logo_c, compress = "v")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.