| Title: | Create Easily Canvas in 'shiny' and 'RMarkdown' Documents | 
| Version: | 0.1.2 | 
| Description: | Allows the user to implement easily canvas elements within a 'shiny' app or an 'RMarkdown' document. The user can create shapes, images and text elements within the canvas which can also be used as a drawing tool for taking notes. The package relies on the 'fabricjs' 'JavaScript' library. See http://fabricjs.com/. | 
| License: | MIT + file LICENSE | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 7.1.1 | 
| Imports: | htmltools, glue | 
| URL: | https://github.com/feddelegrand7/fabricerin | 
| BugReports: | https://github.com/feddelegrand7/fabricerin/issues | 
| NeedsCompilation: | no | 
| Packaged: | 2020-08-12 22:26:17 UTC; Administrateur | 
| Author: | Mohamed El Fodil Ihaddaden [aut, cre], Garrick Aden-Buie [ctb], fabricjs contributors [ctb, cph] (fabricjs JavaScript library), jQuery contributors [ctb, cph] (jQuery JavaScript library), FileSaver.js contributors [ctb, cph] (FileSaver JavaScript library) | 
| Maintainer: | Mohamed El Fodil Ihaddaden <ihaddaden.fodeil@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2020-08-14 17:20:07 UTC | 
Add a background or an overlay image to a preexisting canvas
Description
Add a background or an overlay image to a preexisting canvas
Usage
fabric_curtail(cid, imgsrc, type = "background")
Arguments
| cid | the id of the canvas element | 
| imgsrc | the URL source of the image | 
| type | whether to use an image as a 'background' or as an 'overlay' | 
Value
a canvas with a background or overlay image
Examples
if (interactive()) {
img <- "https://st.depositphotos.com/1642482/1904/i/950/depositphotos_19049237-stock-photo-leaf.jpg"
ui <- fluidPage(
fabric_shape(cid = "canvas123",
             shapeId = "tri1",
             shape = "Triangle",
             fill = "darkblue"),
fabric_curtail(cid = "canvas123",
             imgsrc = img,
             type = "background"
             )
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
}
Create a canvas element for drawing
Description
Create a canvas element for drawing
Usage
fabric_drawing(
  cid,
  cwidth = 800,
  cheight = 600,
  cfill = "#FFFFFF",
  drawingWidth = 2,
  gumSize = 10
)
Arguments
| cid | the id of the canvas element | 
| cwidth | the width of the canvas element | 
| cheight | the height of the canvas element | 
| cfill | the color of the canvas element. Default to #FFFFFF (white) | 
| drawingWidth | the width of the drawing output. Default to 2 | 
| gumSize | specify the size of the gum. Defaults to 10 | 
Value
an HTML canvas element
Examples
if (interactive()) {
ui <- fluidPage(
   h1("Draw some stuff here"),
   fabric_drawing(cid = "canvas1")
   )
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
}
Insert external images inside canvas element
Description
Insert external images inside canvas element
Usage
fabric_image(
  cid,
  cwidth = 800,
  cheight = 600,
  cfill = "#FFFFFF",
  imgId,
  imgsrc,
  imgwidth = 500,
  imgheight = 500,
  left = 100,
  top = 100,
  angle = 0,
  opacity = 1,
  strokecolor = "darkblue",
  strokewidth = 1,
  selectable = TRUE,
  isDrawingMode = FALSE
)
Arguments
| cid | the id of the canvas element | 
| cwidth | the width of the canvas element. Defaults to 800 | 
| cheight | the height of the canvas element. Defaults to 600 | 
| cfill | the color of the canvas element | 
| imgId | the id of the image | 
| imgsrc | the URL source of the image | 
| imgwidth | the width of the image. Defaults to 500 | 
| imgheight | the height of the image. Defaults to 500 | 
| left | the image's position from the left relative to the canvas element. Defaults to 100 | 
| top | the image's position from the top relative to the canvas element. Defaults to 100 | 
| angle | the angle of rotation of the image. Defaults to 0 (no rotation) | 
| opacity | the opacity of the image (from 0 to 1). Defaults to 1 | 
| strokecolor | the stroke color of the image. Defaults to 'darkblue' | 
| strokewidth | the stroke width of the image. Defaults to 1 | 
| selectable | logical. If TRUE, the user can modify interactively the image's size, position and rotation. Defaults to TRUE | 
| isDrawingMode | logical. If TRUE, the user can draw inside the canvas element. | 
Value
an image inside a canvas element
Examples
if (interactive()) {
img <- "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/R_logo.svg/724px-R_logo.svg.png"
ui <- fluidPage(
fabric_image(cid = "cimage",
             cfill = "lightblue",
             imgId = "Rimg",
             imgsrc = img)
             )
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
}
Add an image to a preexisting canvas element
Description
Add an image to a preexisting canvas element
Usage
fabric_image_add(
  cid,
  imgId,
  imgsrc,
  imgwidth = 500,
  imgheight = 500,
  left = 100,
  top = 100,
  angle = 0,
  opacity = 1,
  strokecolor = "darkblue",
  strokewidth = 1,
  selectable = TRUE
)
Arguments
| cid | the id of the canvas element you want to add your image to | 
| imgId | the of the image | 
| imgsrc | the URL source of the image | 
| imgwidth | the width of the image. Defaults to 500 | 
| imgheight | the height of the image. Defaults to 500 | 
| left | the image's position from the left relative to the canvas element. Defaults to 100 | 
| top | the image's position from the top relative to the canvas element. Defaults to 100 | 
| angle | the angle of rotation of the image. Defaults to 0 (no rotation) | 
| opacity | the opacity of the image (from 0 to 1). Defaults to 1 | 
| strokecolor | the stroke color of the image. Defaults to 'darkblue' | 
| strokewidth | the stroke width of the image. Defaults to 1 | 
| selectable | logical. If TRUE, the user can modify interactively the image's size, position and rotation. Defaults to TRUE | 
Value
an image inside a preexisting canvas element
Examples
if (interactive()) {
img1 <- "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/R_logo.svg/724px-R_logo.svg.png"
img2 <- "https://raw.githubusercontent.com/rstudio/hex-stickers/master/PNG/dplyr.png"
ui <- fluidPage(
fabric_image(cid = "cimage",
             imgId = "Rimg",
             imgsrc = img1,
             imgheight = 200,
             imgwidth = 200),
fabric_image_add(cid = "cimage",
                 imgId = "rstudioimg",
                 imgsrc = img2,
                 imgwidth = 200,
                 imgheight = 200,
                 left = 400)
                 )
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
}
Create shapes inside a canvas
Description
Create shapes inside a canvas
Usage
fabric_shape(
  cid,
  cwidth = 800,
  cheight = 600,
  cfill = "#FFFFFF",
  shapeId,
  shape = "Rect",
  left = 100,
  top = 100,
  fill = "red",
  width = 200,
  height = 200,
  angle = 0,
  opacity = 1,
  strokecolor = "darkblue",
  strokewidth = 5,
  selectable = TRUE,
  isDrawingMode = FALSE,
  radius = NULL,
  xPolygon = NULL,
  yPolygon = NULL
)
Arguments
| cid | the id of the canvas element | 
| cwidth | the width of the canvas element. Defaults to 800 | 
| cheight | the height of the canvas element. Defaults to 600 | 
| cfill | the color of the canvas element | 
| shapeId | the id of the shape object | 
| shape | the shape of the object. Choices include 'Circle', 'Triangle' and 'Rect'. Defaults to 'Rect' | 
| left | the shape's position from the left relative to the canvas element. Defaults to 100 | 
| top | the shape's position from the top relative to the canvas element. Defaults to 100 | 
| fill | the color of the shape. Defaults to 'red' | 
| width | the width of the shape. Defaults to 200 | 
| height | the height of the shape. Defaults to 200 | 
| angle | the angle of rotation of the shape. Defaults to 0 (no rotation) | 
| opacity | the opacity of the shape (from 0 to 1). Defaults to 1 | 
| strokecolor | the stroke color of the shape. Defaults to 'darkblue' | 
| strokewidth | the stroke width of the shape. Defaults to 5. | 
| selectable | logical. If TRUE, the user can modify interactively the shape's size, position and rotation. Defaults to TRUE | 
| isDrawingMode | logical. If TRUE, the user can draw inside the canvas element. | 
| radius | mandatory if the chosen shape is a 'Circle'. Defaults to NULL | 
| xPolygon | a vector of the coordinate points of the polygon, from the left. | 
| yPolygon | a vector of the coordinate points of the polygon, from the top | 
Value
a shape object inside a canvas
Examples
if(interactive()){
ui <- fluidPage(
h2("Below you'll find a red Rectangle with a darkblue stroke"),
fabric_shape(cid = "canvas", shapeId = "shape1", shape = "Rect")
)
server <- function(input, output) {
}
shinyApp(ui = ui, server = server)
}
Add a shape object to a preexisting canvas element
Description
Add a shape object to a preexisting canvas element
Usage
fabric_shape_add(
  cid,
  shapeId,
  shape = "Rect",
  left = "100",
  top = "100",
  fill = "red",
  width = 200,
  height = 200,
  angle = 0,
  opacity = 1,
  strokecolor = "darkblue",
  strokewidth = 5,
  selectable = TRUE,
  radius = NULL,
  xPolygon = NULL,
  yPolygon = NULL
)
Arguments
| cid | the id of the canvas element you want to add your shape to | 
| shapeId | the id of the shape object | 
| shape | the shape of the object. Choices include 'Circle', 'Triangle' and 'Rect'. Defaults to 'Rect' | 
| left | the shape's position from the left relative to the canvas element. Defaults to 100 | 
| top | the shape's position from the top relative to the canvas element. Defaults to 100 | 
| fill | the color of the shape. Defaults to 'red' | 
| width | the width of the shape. Defaults to 200 | 
| height | the height of the shape. Defaults to 200 | 
| angle | the angle of rotation of the shape. Defaults to 0 (no rotation) | 
| opacity | the opacity of the shape. Defaults to 1 | 
| strokecolor | the stroke color of the shape. Defaults to 'darkblue' | 
| strokewidth | the stroke width of the shape. Defaults to 5. | 
| selectable | logical. If TRUE, the user can modify interactively the shape. Defaults to TRUE | 
| radius | Mandatory if the chosen shape is a 'Circle'. Defaults to NULL | 
| xPolygon | a vector of the coordinate points of the polygon, from the left. | 
| yPolygon | a vector of the coordinate points of the polygon, from the top | 
Value
a shape object inside a preexisting canvas element
Examples
if (interactive()) {
ui <- fluidPage(
fabric_shape(cid = "canvas",
             shapeId = "shape1",
             shape = "Rect",
             left = 130,
             top = 200),
fabric_shape_add(cid = "canvas",
                 shapeId = "shapo",
                 shape = "Circle",
                 radius = 30,
                 left = 100,
                 top = 100),
fabric_shape_add(cid = "canvas",
                 shapeId = "shapa",
                 shape = "Circle",
                 radius = 30,
                 left = 200,
                 top = 100),
fabric_shape_add(cid = "canvas",
                 shapeId = "shapox",
                 shape = "Circle",
                 radius = 30,
                 left = 300,
                 top = 100),
fabric_shape_add(cid = "canvas",
                 shapeId = "shapor",
                 shape = "Circle",
                 radius = 30,
                 left = 300,
                 top = 100)
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
}
Insert text within canvas element
Description
Insert text within canvas element
Usage
fabric_text(
  cid,
  cwidth = 800,
  cheight = 600,
  cfill = "#FFFFFF",
  textId,
  text,
  left = 100,
  top = 100,
  fill = "#2F3941",
  angle = 0,
  opacity = 1,
  fontFamily = "Comic Sans",
  fontSize = 40,
  fontStyle = "normal",
  strokecolor = "#282A36",
  strokewidth = 1,
  fontWeight = "normal",
  underline = FALSE,
  linethrough = FALSE,
  overline = FALSE,
  selectable = TRUE,
  shadow = FALSE,
  shadowCol = "#FFFAF0",
  textAlign = "center",
  lineHeight = 1,
  textBackgroundColor = NULL,
  isDrawingMode = FALSE
)
Arguments
| cid | the id of the canvas element | 
| cwidth | the width of the canvas element. Defaults to 800 | 
| cheight | the height of the canvas element. Defaults to 600 | 
| cfill | the color of the canvas element | 
| textId | the id of the text | 
| text | the content of the text | 
| left | the text's position from the left relative to the canvas element. Defaults to 100 | 
| top | the text's position from the top relative to the canvas element. Defaults to 100 | 
| fill | the text's color. Defaults to '#2F3941' (dark shade of cyan-blue) | 
| angle | the angle of rotation of the text. Defaults to 0 (no rotation) | 
| opacity | text opacity (from 0 to 1). Defaults to 1 | 
| fontFamily | the font family of the text. Defaults to 'Comic Sans' | 
| fontSize | text sizing. Defaults to 40 | 
| fontStyle | the font style of the text. Either 'normal' or 'italic' | 
| strokecolor | the stroke color of the text Defaults to '#282A36' (Very dark grayish blue) | 
| strokewidth | the stroke width of the text. Defaults to 1 | 
| fontWeight | allows the user to make text thicker or thinner. Keywords can be used ('normal', 'bold'), or numbers. Defaults to 'normal' | 
| underline | logical. Whether to underline the text or not. Defaults to FALSE | 
| linethrough | logical. Whether to insert a line through the text or not. Defaults to FALSE | 
| overline | logical. Whether to put a line above the text or not. Defaults to FALSE | 
| selectable | logical. If TRUE, the user can modify interactively the image's size, position and rotation. Defaults to TRUE | 
| shadow | logical. If TRUE a text shadow will be inserted behind the raw text. Defaults to FALSE | 
| shadowCol | the color of the text shadow. Defaults to #FFFAF0 (floral white) | 
| textAlign | the alignment of text. Useful when there are line breaks. Defaults to "center" | 
| lineHeight | the height of the line breaks.Defaults to 1 | 
| textBackgroundColor | the background color of the text, defaults to NULL | 
| isDrawingMode | logical. If TRUE, the user can draw inside the canvas element. | 
Value
a text object within a canvas element
Examples
if (interactive()) {
ui <- fluidPage(
fabric_text(cid = "can",
         textId = "text",
         text = "But A Hero Is A Guy Who Gives Out The Meat To Everyone Else.",
         cfill = "#DD5347",
         left = 120,
         shadowCol = "blue",
         fontSize = 20,
         fontWeight = "bold",
         lineHeight = 3
         )
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
}
Add text within preexisting canvas element
Description
Add text within preexisting canvas element
Usage
fabric_text_add(
  cid,
  textId,
  text,
  left = 100,
  top = 100,
  fill = "#2F3941",
  angle = 0,
  opacity = 1,
  fontFamily = "Comic Sans",
  fontSize = 40,
  fontStyle = "normal",
  strokecolor = "#282A36",
  strokewidth = 1,
  fontWeight = "normal",
  underline = FALSE,
  linethrough = FALSE,
  overline = FALSE,
  selectable = TRUE,
  shadow = FALSE,
  shadowCol = "#324C63",
  textAlign = "center",
  lineHeight = 1,
  textBackgroundColor = NULL
)
Arguments
| cid | the id of the canvas element | 
| textId | the id of the text | 
| text | the content of the text | 
| left | the text's position from the left relative to the canvas element. Defaults to 100 | 
| top | the text's position from the top relative to the canvas element. Defaults to 100 | 
| fill | the text's color. Defaults to '#2F3941' (dark shade of cyan-blue) | 
| angle | the angle of rotation of the text. Defaults to 0 (no rotation) | 
| opacity | text opacity (from 0 to 1). Defaults to 1 | 
| fontFamily | the font family of the text. Defaults to 'Comic Sans' | 
| fontSize | text sizing. Defaults to 40 | 
| fontStyle | the font style of the text. Either 'normal' or 'italic' | 
| strokecolor | the stroke color of the text Defaults to '#282A36' (Very dark grayish blue) | 
| strokewidth | the stroke width of the text. Defaults to 1 | 
| fontWeight | allows the user to make text thicker or thinner. Keywords can be used ('normal', 'bold'), or numbers. Defaults to 'normal' | 
| underline | logical. Whether to underline the text or not. Defaults to FALSE | 
| linethrough | logical. Whether to insert a line through the text or not. Defaults to FALSE | 
| overline | logical. Whether to put a line above the text or not. Defaults to FALSE | 
| selectable | logical. If TRUE, the user can modify interactively the image's size, position and rotation. Defaults to TRUE | 
| shadow | logical. If TRUE a text shadow will be inserted behind the raw text. Defaults to FALSE | 
| shadowCol | the color of the text shadow. Defaults to #FFFAF0 (floral white) | 
| textAlign | the alignment of text. Useful when there are line breaks. Defaults to "center" | 
| lineHeight | the height of the line breaks.Defaults to 1 | 
| textBackgroundColor | the background color of the text, defaults to NULL | 
Value
a text object within a preexisting canvas element
Examples
if (interactive()) {
ui <- fluidPage(
fabric_shape(cid = "canvas123",
             cfill = "lightblue",
             cwidth = 1000,
             shapeId = "tri1",
             shape = "Triangle",
             fill = "darkblue"),
fabric_text_add(cid = "canvas123",
                textId = "txt1",
                text = "This is a darkblue Triangle !",
                left = 350
                )
                )
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
}
Create an HTML dependency for FileSaver.js
Description
Create an HTML dependency for FileSaver.js
Create an HTML dependency for fabric.js
Create an HTML dependency for jQuery
Usage
filesaver_dependency()
fabric_dependency()
jquery_dependency()