View source: R/print.bm_pixmap.R
print.bm_pixmap | R Documentation |
print.bm_pixmap()
prints bittermelon pixmap objects to the terminal
It is a wrapper around format.bm_pixmap()
.
## S3 method for class 'bm_pixmap'
print(
x,
...,
bg = getOption("bittermelon.bg", FALSE),
compress = getOption("bittermelon.compress", "none"),
downscale = getOption("bittermelon.downscale", FALSE)
)
## S3 method for class 'bm_pixmap'
format(
x,
...,
bg = getOption("bittermelon.bg", FALSE),
compress = getOption("bittermelon.compress", "none"),
downscale = getOption("bittermelon.downscale", FALSE)
)
x |
A |
... |
Currently ignored. |
bg |
R color string of background color to use and/or
cli ANSI style function of class |
compress |
How to print the image: * "none" (default) or "n" use one character per pixel. * "vertical" or "v" use one character per two vertical pixels (makes pixels look closest to square in typical terminal). * "horizontal" or "h" use one character per two horizontal pixels. * "both" or "b" use one character per four pixels (this will be a lossy conversion whenever there are more than two colors per four pixels). |
downscale |
If |
A character vector of the string representation (print.bm_pixmap()
does this invisibly).
As a side effect print.bm_pixmap()
prints out the string representation to the terminal.
Printing bitmaps/pixmaps may or may not look great in your terminal depending on a variety of factors:
The terminal should support the Unicode - UTF-8 encoding.
We use cli::is_utf8_output()
to guess Unicode support
which in turn looks at getOption("cli.unicode")
and l10n_info()
.
The terminal should support ANSI sequences and if it does it should support many colors.
We use cli::num_ansi_colors()
to detect number of colors supported.
num_ansi_colors()
detection algorithm is complicated but it first looks at
getOption("cli.num_colors")
.
If cli::num_ansi_colors()
equals 16777216 then your terminal
supports 24-bit ANSI colors.
If using the Windows Command Prompt window you may need to enable
ANSI sequences support by doing REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
from the command-line or running regedit
(Registry Editor) and go to
Computer\HKEY_CURRENT_USER\Console
and set VirtualTerminalLevel
to 1
.
The font used by the terminal should be a monoscale font that supports the Block Elements Unicode block.
The terminal text settings should have a cell spacing around 1.00 times width and 1.00 times height.
For terminals configured by CSS styles this means a line-height
of around 1.0
.
crops <- farming_crops_16x16()
corn <- crops$corn$portrait
if (cli::is_utf8_output() && cli::num_ansi_colors() >= 256L) {
print(corn)
}
if (cli::is_utf8_output() && cli::num_ansi_colors() >= 256L) {
print(corn, compress = "v", bg = cli::bg_br_white)
}
if (cli::is_utf8_output() &&
cli::num_ansi_colors() > 256L &&
getOption("width") >= 100L) {
img <- png::readPNG(system.file("img", "Rlogo.png", package="png"))
pm <- as_bm_pixmap(img)
print(pm, compress = "v")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.