开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
基础 api
基础
应用级事件
界面
导航栏
tabbar
路由
交互反馈
下拉刷新
联系人
选择城市
选择日期
动画
画布
canvas
canvasrenderingcontext2d
canvaspattern
offscreencanvas
旧版接口(停止更新)
地图
计算路径
键盘
滚动
节点查询
选项选择器
级联选择
设置窗口背景
设置页面是否支持下拉
字体
跳转
多媒体
缓存
文件
位置
网络
设备
worker
数据安全
分享
收藏
自定义通用菜单
更新管理
web-view组件控制
升级支付宝最新版本
隐私信息授权
小程序广告
开放能力 api
开发 > api > 基础 api > 界面 > 画布 > canvasrenderingcontext2d > canvasrenderingcontext2d.drawimage
收藏
订阅更新
我的文档
设置

canvasrenderingcontext2d.drawimage(canvas | image image, number sx, number sy, number swidth, number sheight, number dx, number dy, number dwidth, number dheight)

基础库  或更高版本; 若版本较低,建议采取 兼容处理

支小宝客户端 支持

安诊儿客户端 支持

主体: 企业支付宝小程序个人支付宝小程序

绘制图片到画布。

此 api 共有三种用法:

drawimage(canvas | image image, number dx, number dy)
drawimage(canvas | image image, number dx, number dy, number dwidth, number dheight)
drawimage(canvas | image image, number sx, number sy, number swidth, number sheight, number dx, number dy, number dwidth, number dheight)
# 效果示例 代码示例执行效果 - 默认标题0: https://mdn.alipayobjects.com/huamei_esgcm9/afts/img/a*ouykq5wgy-aaaaaaaaaaaaaadsajaq/original

canvas | image

要绘制的内容。可以为图片对象,或 canvas 实例

number dx

图片在画布上被绘制出来的位置的 x 轴坐标。

number dy

图片在画布上被绘制出来的位置的 y 轴坐标。

number dwidth

图片要绘制的宽度。可选,默认为原图片真实宽度。

number dheight

图片要绘制的高度。可选,默认为原图片真实高度。

number sx

矩形截选区域左上角的 x 轴位置。会截选原图片中的一块区域绘制。

number sy

矩形截选区域左上角的 y 轴位置。会截选原图片中的一块区域绘制。

number swidth

矩形截选区域的宽度。会截选原图片中的一块区域绘制。

number sheight

矩形截选区域的高度。会截选原图片中的一块区域绘制。

绘制 image
绘制 canvas
.js
.axml
page({
    oncanvasready2() {
        my.createselectorquery().select('#canvas2').node().exec((res) => {
            const canvas2 = res[0].node
            this.canvas2 = canvas2
        })
    },
    oncanvasready() {
        my.createselectorquery().select('#canvas').node().exec((res) => {
            const canvas = res[0].node
            const ctx = canvas.getcontext('2d')
            this.canvas = canvas
            let img = canvas.createimage()
            img.src = "https://mdn.alipayobjects.com/huamei_esgcm9/afts/img/a*ouykq5wgy-aaaaaaaaaaaaaadsajaq/original"
            img.onload = function () {
                console.log('load image success')
                // 绘制图片
                ctx.drawimage(img, 0, 0)
            }
        })
    },
    ontap() {
        let ctx2 = this.canvas2.getcontext('2d')
        ctx2.drawimage(this.canvas, 0, 0)   
    }
})
<view>
  
    <view>
        <canvas id="canvas" type="2d" onready="oncanvasready">canvas>
    view>
    <view>
        <canvas id="canvas2" type="2d" onready="oncanvasready2">canvas>
    view>
    <button size="default" type="primary" ontap="ontap">绘制至另一个画布button>
view>
.js
.axml
page({
    oncanvasready2() {
        my.createselectorquery().select('#canvas2').node().exec((res) => {
            const canvas2 = res[0].node
            this.canvas2 = canvas2
        })
    },
    oncanvasready() {
        my.createselectorquery().select('#canvas').node().exec((res) => {
            const canvas = res[0].node
            const ctx = canvas.getcontext('2d')
            this.canvas = canvas
            let img = canvas.createimage()
            img.src = "https://mdn.alipayobjects.com/huamei_esgcm9/afts/img/a*ouykq5wgy-aaaaaaaaaaaaaadsajaq/original"
            img.onload = function () {
                console.log('load image success')
                // 绘制图片
                ctx.drawimage(img, 0, 0)
            }
        })
    },
    ontap() {
        let ctx2 = this.canvas2.getcontext('2d')
        ctx2.drawimage(this.canvas, 0, 0)   
    }
})
<view>
  
    <view>
        <canvas id="canvas" type="2d" onready="oncanvasready">canvas>
    view>
    <view>
        <canvas id="canvas2" type="2d" onready="oncanvasready2">canvas>
    view>
    <button size="default" type="primary" ontap="ontap">绘制至另一个画布button>
view>
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图