Skip to content

畫布概要

createOffscreenCanvas

TIP

該API使用方法為: OffscreenCanvas wx.createOffscreenCanvas(object object, number width, number height, Object this)

  • 功能說明: 創建離屏canvas實例。
  • 參數及說明:
    • number width: 畫布寬度。

    • number height: 畫布高度。

    • object this: 在自定義組件下,當前組件實例的this。

    • object object

      内容類型預設值必填說明
      typestringwebgl創建的離屏canvas類型
      widthnumber-畫布寬度。
      heightnumber-畫布高度。
      compInstComponent-在自定義組件下,當前組件實例的this。
      • object.type
      合法值說明
      webglwebgl類型上下文
      2d2d類型上下文

createCanvasContext

TIP

該API使用方法為: CanvasContext wx.createCanvasContext(string canvasId, Object this)

  • 功能說明: 創建canvas的繪圖上下文 canvasContext 對象

  • 參數及說明:

    • string canvasId 要獲取上下文的<canvas>組件canvas-id内容。
    • Object this: 在自定義組件下,當前組件實例的this,表示在這自定義組件下查找擁有canvas-id的<canvas>,如果省略,則不在任何自定義組件內查找。
  • 返回值: canvasContext

canvasToTempFilePath

TIP

該API使用方法為: wx.canvasToTempFilePath(Object object, Object this)

  • 功能說明: 把當前畫布指定區域的內容匯出,生成指定大小的圖片,在draw()回檔裏調用該方法才能保證圖片匯出成功。

  • 參數及說明: Object object。

    内容類型預設值必填說明
    xnumber0指定的畫布區域的左上角橫坐標
    ynumber0指定的畫布區域的左上角縱坐標
    widthnumbercanvas寬度-x指定的畫布區域的寬度
    heightnumbercanvas高度-y指定的畫布區域的高度
    destWidthnumberwidth*荧幕點數密度輸出的圖片的寬度
    destHeightnumberheight*荧幕點數密度輸出的圖片的高度
    canvasIdstring-畫布標識,傳入<canvas>組件的canvas-id
    fileTypestringpng目標文件的類型
    qualitynumber-圖片的質量,現時僅對jpg有效。 取值範圍為(0,1],不在範圍內時當作1.0處理。
    successFunction-接口調用成功的回呼函數
    failFunction-接口調用失敗的回呼函數
    completeFunction-接口調用結束的回呼函數(無論成功與否都執行)
    • object.fileType的合法值

      說明
      jpgjpg圖片
      pngpng圖片
    • Object.success的res回檔結果

      類型說明
      tempFilePathstring生成文件的臨時路徑(本地路徑)
  • 示例代碼:

js
wx.canvasToTempFilePath({
  x: 100,
  y: 200,
  width: 50,
  height: 50,
  destWidth: 100,
  destHeight: 100,
  canvasId: 'myCanvas',
  success(res) {
    console.log(res.tempFilePath)
  }
})

canvasPutImageData

TIP

該API使用方法為: wx.canvasPutImageData(Object object, Object this)

  • 功能說明: 將點數數據繪製到畫布,在自定義組件下,第二個參數傳入自定義組件實例this,以操作組件內canvas組件。

  • 參數1 : Object object。

    内容類型預設值必填說明
    canvasIdstring-畫布標識,傳入<canvas>組件的canvas-id内容
    dataUint8ClampedArray-影像點數點數據,一維數組,每四項表示一個點數點的rgba
    xnumber-源影像數據在目標畫布中的位置偏移量(x軸方向的偏移量)
    ynumber-源影像數據在目標畫布中的位置偏移量(y軸方向的偏移量)
    widthnumber-源影像數據矩形區域的寬度
    heightnumber-源影像數據矩形區域的高度
    successFunction-接口調用成功的回呼函數
    failFunction-接口調用失敗的回呼函數
    completeFunction-接口調用結束的回呼函數(無論成功與否都執行)
    • 參數2 : Object this,在自定義組件下,當前組件實例的this,以操作組件內<canvas>組件。。
  • 示例代碼:

js
const data = new Uint8ClampedArray([255, 0, 0, 1])
wx.canvasPutImageData({
  canvasId: 'myCanvas',
  x: 0,
  y: 0,
  width: 1,
  data,
  success(res) {}
})

canvasGetImageData

TIP

該API使用方法為: wx.canvasGetImageData(Object object, Object this)

  • 功能說明: 獲取canvas區域隱含的點數數據。

  • 參數1: Object object。

    内容類型預設值必填說明
    canvasIdstring-畫布標識,傳入<canvas>組件的canvas-id内容
    xnumber-將要被選取的影像數據矩形區域的左上角橫坐標
    ynumber-將要被選取的影像數據矩形區域的左上角縱坐標
    widthnumber-將要被選取的影像數據矩形區域的寬度
    heightnumber-將要被選取的影像數據矩形區域的高度
    successFunction-接口調用成功的回呼函數
    failFunction-接口調用失敗的回呼函數
    completeFunction-接口調用結束的回呼函數(無論成功與否都執行)
    • object.success回呼函數參數: : Object res。

      内容類型說明
      widthnumber影像數據矩形的寬度
      heightnumber影像數據矩形的高度
      dataUint8ClampedArray影像點數點數據,一維數組,每四項表示一個點數點的rgba
    • 參數2 : Object this,在自定義組件下,當前組件實例的this,以操作組件內<canvas>組件。。

  • 示例代碼:

js
wx.canvasGetImageData({
  canvasId: 'myCanvas',
  x: 0,
  y: 0,
  width: 100,
  height: 100,
  success(res) {
    console.log(res.width) // 100
    console.log(res.height) // 100
    console.log(res.data instanceof Uint8ClampedArray) // true
    console.log(res.data.length) // 100 * 100 * 4
  }
})

Image

  • 功能說明: 圖片對象

  • 參數及說明:

    内容類型說明
    srcstring圖片的URL
    widthnumber圖片的真實寬度
    heightnumber圖片的真實高度
    referrerPolicystringorigin:發送完整的referrer;no-referrer:不發送。格式固定為https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 為小程序的 appid,{version} 為小程序的版本號,版本號為 0 表示為開發版、體驗版以及審核版本,版本號為 devtools 表示為開發者工具,其餘版本;
    onloadfunction圖片加載完成後觸發的回呼函數
    onerrorfunction圖片加載發生錯誤後觸發的回呼函數

ImageData

  • 功能說明: ImageData對象

  • 參數及說明:

    内容類型說明
    widthnumber使用點數描述ImageData的實際寬度
    heightnumber使用點數描述ImageData的實際高度
    dataUint8ClampedArray一維數組,包含以RGBA順序的數據,數據使用0至255(包含)的整數表示

canvasGradient

  • 功能說明: 漸變對象

.addColorStop

TIP

該API使用方法為: CanvasGradient.addColorStop(number stop, Color color)

  • 功能說明: 添加顏色的漸變點。 小於最小stop的部分會按最小stop的color來渲染,大於最大stop的部分會按最大stop的color來渲染,相當於CanvasGradient.addColorStop(number stop,Color color)。
    參數1: number stop, 表示漸變中開始與結束之間的位置,範圍0-1。
    參數2: Color color 漸變點的顏色。

  • 示例代碼:

js
const ctx = wx.createCanvasContext('myCanvas')

// Create circular gradient
const grd = ctx.createLinearGradient(30, 10, 120, 10)
grd.addColorStop(0, 'red')
grd.addColorStop(0.16, 'orange')
grd.addColorStop(0.33, 'yellow')
grd.addColorStop(0.5, 'green')
grd.addColorStop(0.66, 'cyan')
grd.addColorStop(0.83, 'blue')
grd.addColorStop(1, 'purple')

// Fill with gradient
ctx.setFillStyle(grd)
ctx.fillRect(10, 10, 150, 80)
ctx.draw()

RenderingContext

  • 功能說明: Canvas繪圖上下文
    • 通過Canvas.getContext('2d')接口可以獲取CanvasRenderingContext2D對象,實現了 HTML Canvas 2D Context 定義的内容、方法。
    • 通過Canvas.getContext('webgl')或OffscreenCanvas.getContext('webgl')接口可以獲取WebGLRenderingContext對象,實現了 WebGL 1.0 定義的所有内容、方法、常數。

詳情請見 canvasContext

OffscreenCanvas

詳情請見 OffscreenCanvas

Path2D

詳情請見 Path2D

Canvas

詳情請見 Canvas

Color

詳情請見 Color