7***@qq.com
7***@qq.com
  • 发布:2026-08-06 18:02
  • 更新:2026-08-06 18:02
  • 阅读:38

【报Bug】鸿蒙运行到手机上,发现ctx.drawImag的图片无法通过ctx.draw绘制出来

分类:鸿蒙Next

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 26.5.2

HBuilderX类型: 正式

HBuilderX版本号: 5.15

手机系统: HarmonyOS NEXT

手机系统版本号: HarmonyOS 6.0.0

手机厂商: 华为

手机机型: 华为畅想90 Pro Max

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

onReady() {
const ctx = uni.createCanvasContext('imageCanvas');
// 3. 开始绘制
uni.chooseImage({
success: (res) => {
this.drawOnCanvas(ctx, rect, res.tempFilePaths[0]);
}
})
},
methods: {
drawOnCanvas(ctx, rect, tempFilePath) {
// 清空画布(如果需要)
ctx.clearRect(0, 0, rect.width, rect.height);
console.log('tempFilePath', tempFilePath)
ctx.drawImage(tempFilePath, 0, 0, rect.width, rect.height);
// 执行绘制
ctx.draw(true, () => {
console.log('✅ 绘制完成1111!');
});
// 示例1:绘制矩形
ctx.setFillStyle('#FF6B6B');
ctx.fillRect(50, 50, 100, 80);

        // 示例2:绘制边框  
        ctx.setStrokeStyle('#4ECDC4');  
        ctx.setLineWidth(3);  
        ctx.strokeRect(50, 50, 100, 80);  

        // 示例3:绘制文字  
        ctx.setFillStyle('#2C3E50');  
        ctx.setFontSize(20);  
        ctx.fillText('Hello Canvas', 60, 120);  

        // 示例4:绘制圆形  
        ctx.beginPath();  
        ctx.arc(200, 100, 40, 0, 2 * Math.PI);  
        ctx.setFillStyle('#FFE66D');  
        ctx.fill();  
        ctx.setStrokeStyle('#F39C12');  
        ctx.setLineWidth(2);  
        ctx.stroke();  

        // 示例5:绘制线条  
        ctx.beginPath();  
        ctx.moveTo(300, 30);  
        ctx.lineTo(350, 80);  
        ctx.lineTo(300, 130);  
        ctx.setStrokeStyle('#9B59B6');  
        ctx.setLineWidth(4);  
        ctx.stroke();  

        // 执行绘制  
        ctx.draw(true, () => {  
                console.log('✅ 绘制完成22222!');  
        });  
    },  

}

操作步骤:

选择图片后渲染,无法绘制到所在的canvas上,canvas不展示绘制内容,注释掉drawImg则可以正常展示

预期结果:

希望drawImg的图片可以正常绘制

实际结果:

drawImg的图片无法绘制到canvas上

bug描述:

1:在hbuildx打鸿蒙离线资源包,放入鸿蒙开发(DevEco Studio)软件
2:运行到手机上连调测试,发现ctx.draw无法成功绘制ctx.drawImage的图片。
3:如果注释掉ctx.drawImage(tempFilePath, 0, 0, rect.width, rect.height); 一切可正常绘制
4:AI尝试过图片加载后在绘制,依然无效,判断为系统兼容bug

2026-08-06 18:02 负责人:无 分享
已邀请:

要回复问题请先登录注册