monobit: Read and write bitmap font files using monobit

read_monobitR Documentation

Read and write bitmap font files using monobit

Description

read_monobit() reads in bitmap font file as a bm_font() object while write_monobit() writes a bm_font() object as a bitmap font file. It uses the file extension to determine the appropriate bitmap font format to use. update_monobit() downloads an updated version of monobit.

Usage

read_monobit(
  file,
  quietly = FALSE,
  monobit_path = getOption("bittermelon.monobit_path", NULL)
)

write_monobit(
  font,
  file,
  quietly = FALSE,
  monobit_path = getOption("bittermelon.monobit_path", NULL)
)

update_monobit(site = FALSE)

Arguments

file

A character string of a filename.

quietly

If TRUE suppress any standard output/error from monobit.

monobit_path

Which directory containing monobit to use. Default will be to look in file.path(rappdirs::user_config_dir("bittermelon"), "monobit"), file.path(rappdirs::site_config_dir("bittermelon"), "monobit"), and system.file("monobit", package = "bittermelon") (in that order).

font

A bm_font() object.

site

If TRUE try to install into rappdirs::site_config_dir("bittermelon") instead of rappdirs::user_config_dir("bittermelon"). Note this may require administrator privileges.

Details

read_monobit() and write_monobit() require Python v3.6 or greater available on the system. read_monobit() and write_monobit() uses monobit's convert.py script to convert to/from the yaff font format which this package can natively read/write from/to. This package embeds an older, smaller version of monobit. Use update_monobit() to download a newer, better version of monobit (which unfortunately is too large to embed within this package).

Value

read_monobit() returns a bm_font() object. write_monobit() returns NULL invisibly and as a side effect writes file.

See Also

bm_font() for more information about bitmap font objects. read_hex(), write_hex(), read_yaff(), write_yaff() for pure R bitmap font readers and writers. For more information about monobit see https://github.com/robhagemans/monobit.

Examples

 
 if (findpython::can_find_python_cmd(minimum_version = "3.6")) {
   try({
     font_file <- system.file("fonts/spleen/spleen-8x16.hex.gz", package = "bittermelon")
     tempfile <- tempfile(fileext = ".hex")
     writeLines(readLines(font_file), tempfile)

     font <- read_monobit(tempfile)
     capital_r <- font[[str2ucp("R")]]
     print(capital_r, px = c(".", "#"))

     filename <- tempfile(fileext = ".yaff")
     write_monobit(font, filename)
   })
 }
 

bittermelon documentation built on Feb. 16, 2023, 8:08 p.m.