[0]drawToCanvas绘制显示不全

在pc模式下,场景适配模式为showall,此时drawToCanvas绘制出来的图片显示不全,demo见附件
drawCanvasBug.png
已邀请:

之肖

赞同来自:

测试代码
export default class TestView extends TestViewUI {
    constructor() {
        super();
    }
    onAwake() {
        this.nativeImg = new Image();
        let style = this.nativeImg.style;
        style.position = 'absolute';
        style.visibility = 'hidden';
        style.zIndex = 9999;
        style.height = screen.height + 'px';
        style.width = Math.floor(screen.height / Laya.stage.height * Laya.stage.width) + 'px';
        document.body.appendChild(this.nativeImg)
    }
    onEnable() {
        Laya.timer.once(1000, this, this.delayShowImg);
    }
    delayShowImg() {
        let canvas = this.drawToCanvas(Laya.stage.width, Laya.stage.height, 0, 0);
        let str = canvas.toBase64('image/jpeg', 0.9);
        this.nativeImg.src = str;
        this.nativeImg.style.visibility = 'visible';
    }
}

layabox

赞同来自:

showall并不是全屏模式,画布会按比例保证你的设计宽度内,一定在屏幕之内进行缩放。你要是超出画布那就不会显示。所以需要自己去控制画布大小内的内容。
 
你的代码里,都没有用引擎的舞台,你自己调的原生接口,那就自己控制吧。这个有一定的难度,其实是不建议的。

之肖

赞同来自:

麻烦仔细看下代码,我是在main里面创建并添加了一个页面到舞台,然后1秒后将这个页面转出的base64赋给的原生图片,但是转出的base64就是显示不全的,上边和右边会有黑边,但是相同代码在3.0里面测试就是对的,对比过两个转换源码,没发现问题,还得你们官方去查下

要回复问题请先

商务合作
商务合作