wechat/canvas

canvas module provides canvas context API bindings details in wechat document

Types

CanvasContext type

pub type CanvasContext

Phase 18: Canvas Advanced

CanvasGradient type

pub type CanvasGradient

Path2D type

pub type Path2D

Values

pub fn cancel_animation_frame(request_id i: Int) -> Nil

wx.cancelAnimationFrame Cancel animation frame

pub fn canvas_arc(
  ctx: CanvasContext,
  x: Float,
  y: Float,
  radius: Float,
  start_angle: Float,
  end_angle: Float,
  anticlockwise: Bool,
) -> Nil

CanvasContext.arc

pub fn canvas_arc_to(
  ctx: CanvasContext,
  x1: Float,
  y1: Float,
  x2: Float,
  y2: Float,
  radius: Float,
) -> Nil

CanvasContext.arcTo

pub fn canvas_begin_path(ctx: CanvasContext) -> Nil

CanvasContext.beginPath

pub fn canvas_bezier_curve_to(
  ctx: CanvasContext,
  cp1_x: Float,
  cp1_y: Float,
  cp2_x: Float,
  cp2_y: Float,
  ep_x: Float,
  ep_y: Float,
) -> Nil

CanvasContext.bezierCurveTo

pub fn canvas_clear_rect(
  ctx: CanvasContext,
  x: Float,
  y: Float,
  width: Float,
  height: Float,
) -> Nil

CanvasContext.clearRect

pub fn canvas_clip(ctx: CanvasContext) -> Nil

CanvasContext.clip Clip drawing area

pub fn canvas_close_path(ctx: CanvasContext) -> Nil

CanvasContext.closePath Close current path

pub fn canvas_create_circular_gradient(
  ctx: CanvasContext,
  x: Float,
  y: Float,
  r: Float,
) -> CanvasGradient

CanvasContext.createCircularGradient Create a circular gradient

pub fn canvas_create_linear_gradient(
  ctx: CanvasContext,
  x0: Float,
  y0: Float,
  x1: Float,
  y1: Float,
) -> CanvasGradient

CanvasContext.createLinearGradient Create a linear gradient

pub fn canvas_draw(ctx: CanvasContext, reserve: Bool) -> Nil

CanvasContext.draw

pub fn canvas_draw_image(
  ctx: CanvasContext,
  img_source: object.JsObject,
  sx: Float,
  sy: Float,
  sw: Float,
  sh: Float,
  dx: Float,
  dy: Float,
  dwidth: Float,
  dheight: Float,
) -> Nil

CanvasContext.drawImage

pub fn canvas_fill(ctx: CanvasContext) -> Nil

CanvasContext.fill Fill path

pub fn canvas_fill_rect(
  ctx: CanvasContext,
  x: Float,
  y: Float,
  width: Float,
  height: Float,
) -> Nil

CanvasContext.fillRect

pub fn canvas_fill_text(
  ctx: CanvasContext,
  text: String,
  x: Float,
  y: Float,
  max_width: Float,
) -> Nil

CanvasContext.fillText

pub fn canvas_get_context(
  canvas: object.JsObject,
  context_type ct: String,
) -> object.JsObject

Canvas.getContext Get canvas rendering context

pub fn canvas_get_image_data(
  canvas_id c: String,
  x x: Float,
  y y: Float,
  width w: Float,
  height h: Float,
  complete cb: fn(object.JsObject) -> Nil,
) -> promise.Promise(object.JsObject)

wx.canvasGetImageData Get image data from canvas

pub fn canvas_gradient_add_color_stop(
  gradient: CanvasGradient,
  offset: Float,
  color: String,
) -> Nil

CanvasGradient.addColorStop Add color stop to gradient

pub fn canvas_line_to(
  ctx: CanvasContext,
  x: Float,
  y: Float,
) -> Nil

CanvasContext.lineTo

pub fn canvas_measure_text(
  ctx: CanvasContext,
  text: String,
) -> object.JsObject

CanvasContext.measureText

pub fn canvas_move_to(
  ctx: CanvasContext,
  x: Float,
  y: Float,
) -> Nil

CanvasContext.moveTo

pub fn canvas_put_image_data(
  canvas_id c: String,
  data d: object.JsObject,
  x x: Float,
  y y: Float,
  width w: Float,
  height h: Float,
) -> Nil

wx.canvasPutImageData Put image data onto canvas

pub fn canvas_quadratic_curve_to(
  ctx: CanvasContext,
  control_point_x: Float,
  control_point_y: Float,
  end_point_x: Float,
  end_point_y: Float,
) -> Nil

CanvasContext.quadraticCurveTo

pub fn canvas_rect(
  ctx: CanvasContext,
  x: Float,
  y: Float,
  width: Float,
  height: Float,
) -> Nil

CanvasContext.rect Draw rectangle path

pub fn canvas_restore(ctx: CanvasContext) -> Nil

CanvasContext.restore

pub fn canvas_rotate(ctx: CanvasContext, angle: Float) -> Nil

CanvasContext.rotate

pub fn canvas_save(ctx: CanvasContext) -> Nil

CanvasContext.save

pub fn canvas_scale(
  ctx: CanvasContext,
  sx: Float,
  sy: Float,
) -> Nil

CanvasContext.scale

pub fn canvas_set_fill_style(
  ctx: CanvasContext,
  color: String,
) -> Nil

CanvasContext.fillStyle

pub fn canvas_set_font_size(
  ctx: CanvasContext,
  size: Float,
) -> Nil

CanvasContext.setFontSize Set font size

pub fn canvas_set_global_alpha(
  ctx: CanvasContext,
  alpha: Float,
) -> Nil

CanvasContext.setGlobalAlpha Set global transparency

pub fn canvas_set_line_cap(
  ctx: CanvasContext,
  line_cap: String,
) -> Nil

CanvasContext.setLineCap

pub fn canvas_set_line_dash(
  ctx: CanvasContext,
  pattern: List(Int),
) -> Nil

CanvasContext.setLineDash

pub fn canvas_set_line_join(
  ctx: CanvasContext,
  line_join: String,
) -> Nil

CanvasContext.setLineJoin

pub fn canvas_set_line_width(
  ctx: CanvasContext,
  width: Float,
) -> Nil

CanvasContext.setLineWidth

pub fn canvas_set_miter_limit(
  ctx: CanvasContext,
  miter: Float,
) -> Nil

CanvasContext.setMiterLimit

pub fn canvas_set_shadow(
  ctx: CanvasContext,
  color: String,
  blur: Float,
  offset_x: Float,
  offset_y: Float,
) -> Nil

CanvasContext.setShadow

pub fn canvas_set_stroke_style(
  ctx: CanvasContext,
  color: String,
) -> Nil

CanvasContext.setStrokeStyle Set stroke style

pub fn canvas_set_text_align(
  ctx: CanvasContext,
  align: String,
) -> Nil

CanvasContext.setTextAlign Set text alignment

pub fn canvas_set_text_baseline(
  ctx: CanvasContext,
  baseline: String,
) -> Nil

CanvasContext.setTextBaseline Set text baseline

pub fn canvas_set_transform(
  ctx: CanvasContext,
  a: Float,
  b: Float,
  c: Float,
  d: Float,
  e: Float,
  f: Float,
) -> Nil

CanvasContext.setTransform Set transformation matrix

pub fn canvas_stroke(ctx: CanvasContext) -> Nil

CanvasContext.stroke Stroke path

pub fn canvas_stroke_rect(
  ctx: CanvasContext,
  x: Float,
  y: Float,
  width: Float,
  height: Float,
) -> Nil

CanvasContext.strokeRect

pub fn canvas_stroke_text(
  ctx: CanvasContext,
  text: String,
  x: Float,
  y: Float,
  max_width: Float,
) -> Nil

CanvasContext.strokeText

pub fn canvas_to_data_url(
  canvas: object.JsObject,
  file_type ft: String,
  quality q: Float,
) -> promise.Promise(object.JsObject)

Canvas.toDataURL (OffscreenCanvas only) Export canvas as data URL string

pub fn canvas_to_temp_file_path(
  canvas_id c: String,
  file_type ft: String,
  quality q: Float,
  complete cb: fn(object.JsObject) -> Nil,
) -> promise.Promise(object.JsObject)

wx.canvasToTempFilePath Export canvas to temporary file path

pub fn canvas_transform(
  ctx: CanvasContext,
  a: Float,
  b: Float,
  c: Float,
  d: Float,
  e: Float,
  f: Float,
) -> Nil

CanvasContext.transform

pub fn canvas_translate(
  ctx: CanvasContext,
  dx: Float,
  dy: Float,
) -> Nil

CanvasContext.translate

pub fn create_canvas_context(canvas_id: String) -> CanvasContext

wx.createCanvasContext Create canvas context

pub fn create_image() -> object.JsObject

Canvas Utility Methods

wx.createImage Create an image object

pub fn create_image_data(
  width w: Float,
  height h: Float,
) -> object.JsObject

wx.createImageData Create an ImageData object

pub fn create_offscreen_canvas(
  options o: object.JsObject,
) -> object.JsObject

Phase 16: Canvas Advanced

Canvas Creation

wx.createOffscreenCanvas Create an offscreen canvas

pub fn create_path_2d() -> object.JsObject

wx.createPath2D Create a Path2D object

pub fn offscreen_canvas_create_image(
  canvas: object.JsObject,
) -> object.JsObject

OffscreenCanvas.createImage Create Image object for offscreen canvas

pub fn path_2d_add_path(path: Path2D, other_path: Path2D) -> Nil

Path2D.addPath Add another path

pub fn path_2d_arc(
  path: Path2D,
  x: Float,
  y: Float,
  radius: Float,
  start_angle: Float,
  end_angle: Float,
  anticlockwise: Bool,
) -> Nil

Path2D.arc Draw arc

pub fn path_2d_bezier_curve_to(
  path: Path2D,
  cp1x: Float,
  cp1y: Float,
  cp2x: Float,
  cp2y: Float,
  x: Float,
  y: Float,
) -> Nil

Path2D.bezierCurveTo Draw cubic bezier curve

pub fn path_2d_close_path(path: Path2D) -> Nil

Path2D.closePath Close path

pub fn path_2d_line_to(path: Path2D, x: Float, y: Float) -> Nil

Path2D.lineTo Draw line to point

pub fn path_2d_move_to(path: Path2D, x: Float, y: Float) -> Nil

Path2D.moveTo Move to point

pub fn path_2d_quadratic_curve_to(
  path: Path2D,
  cpx: Float,
  cpy: Float,
  x: Float,
  y: Float,
) -> Nil

Path2D.quadraticCurveTo Draw quadratic bezier curve

pub fn path_2d_rect(
  path: Path2D,
  x: Float,
  y: Float,
  width: Float,
  height: Float,
) -> Nil

Path2D.rect Draw rectangle

pub fn request_animation_frame(
  callback cb: fn(object.JsObject) -> Nil,
) -> Int

wx.requestAnimationFrame Request animation frame

Search Document