StickerProcessor.paintToTexture收藏我的收藏
收藏
我的收藏
基础库 2.32.0 开始支持本方法,低版本需做兼容处理,这是一个同步方法。
将输入的图像纹理经过贴纸处理后绘制到输出图像纹理上。
语法
StickerProcessor.paintToTexture(inputTexture, outputTexture)
参数说明
inputTexture
类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|
WebGLTexture | 是 | 输入的图像纹理,需要是 native canvas(canvas v2) 产生的一张 WebGL Texture。 | 2.32.0 |
outputTexture
类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|
WebGLTexture | 是 | 输出的目标纹理,需要是 native canvas(canvas v2) 产生的一张 WebGL Texture,使用贴纸后的效果会被绘制在这张纹理上。 | 2.32.0 |
返回值
无
代码示例
Page({ onLoad: function () { console.log("Welcome to Mini Code"); }, onReady: function () { tt.createSelectorQuery() .select("#myCanvas") .node() .exec((res) => { this.canvas = res[0].node; this.gl = this.canvas.getContext("webgl"); this.render = require("./render"); this.render.initRenderContext(this.gl); }); }, requestEffectCamera: function () { this.effectCameraStream = tt.createEffectCameraStream(this); this.effectCameraStream.onRequest(() => { this.effectCameraStream.play(); }); this.effectCameraStream.onPlay((video) => { this.video = video; this.videoTexture = this.render.createTexture( this.gl, video.width, video.height ); this.processedTexture = this.render.createTexture( this.gl, video.width, video.height ); console.log("video size: ", video.width, video.height); this.render.renderVideoToTexture(this.gl, this.video, this.videoTexture); const paint = () => { console.log("paint"); this.render.renderVideoToTexture( this.gl, this.video, this.videoTexture ); this.processor.paintToTexture(this.videoTexture, this.processedTexture); this.render.renderToScreen(this.gl, this.processedTexture); this.canvas.requestAnimationFrame(paint); }; paint(); }); this.effectCameraStream.request(); }, requestSticker: function () { console.log("request sticker"); this.stickerManager = tt.createStickerManager("1404075"); this.stickerManager.onLoad((processor) => { console.log("sticker loaded"); this.processor = processor; }); this.stickerManager.onError((err) => { console.log("sticker load failed, ", err); }); this.stickerManager.load(); console.log("start request sticker"); }, });
Bug & Tip
- Tip: 参数仅支持 native canvas(canvas v2)纹理
该文档是否有帮助?