export_bscui_to_image {bscui}R Documentation

Save a bscui widget to an image file

Description

Save a bscui widget to an image file

Usage

export_bscui_to_image(
  widget,
  file,
  selector = ".bscui",
  zoom = 1,
  quiet = TRUE,
  ...
)

Arguments

widget

a bscui object

file

name of output file. Should end with an image file type (.png, .jpg, .jpeg, or .webp) or .pdf.

selector

(webshot2::webshot()) one or more CSS selectors specifying a DOM element to set the clipping rectangle to (default: ".bscui").

zoom

(webshot2::webshot()) If TRUE (default), status updates via console messages are suppressed.

quiet

(webshot2::webshot()) a number specifying the zoom factor.

...

additional parameters for webshot2::webshot() suppressed.

Value

Invisibly returns the normalized path to the image. The character vector will have a class of "webshot".

See Also

webshot2::webshot()

Examples

##################################@
### Preparing data ----

library(bscui)
library(xml2)
library(readr)
library(dplyr)

svg <- xml2::read_xml(system.file(
   "examples", "Animal_cells.svg.gz",
   package="bscui"
))
info <- readr::read_tsv(system.file(
   "examples", "uniprot_cellular_locations.txt.gz",
   package="bscui"
), col_types=strrep("c", 6)) |>
   mutate(id = sub("-", "", `Subcellular location ID`))

##################################@
### Building the figure ----

figure <- bscui(svg) |>
   set_bscui_ui_elements(
      info |>
         mutate(
            ui_type = "selectable",
            title = Name
         ) |>
         select(id, ui_type, title)
   ) |>
   set_bscui_styles(
      info |>
         filter(Name == "Cytosol") |>
         mutate(fill = "#FF7F7F") |>
         select(id, fill)
   ) |>
   set_bscui_attributes(
      info |>
         filter(Name == "Cytoskeleton") |>
         mutate(display = "none") |>
         select(id, display)
   ) |>
   set_bscui_selection("SL0188") |>
   set_bscui_options(zoom_min=1, clip=TRUE)
figure

##################################@
### Saving the figure ----

if(interactive()){
   ## Temporary directory to save example file
   tdir <- tempdir()

   ## Interactive html file
   f_path <- file.path(tdir, "figure.html")
   figure |> htmlwidgets::saveWidget(file=f_path)
   cat(f_path)

   ## PNG image
   f_path <- file.path(tdir, "figure.png")
   figure |>
      set_bscui_options(show_menu = FALSE) |>
      export_bscui_to_image(file=f_path, zoom=2)
   cat(f_path)
}

[Package bscui version 0.1.5 Index]