Reactjs 单击一个按钮,画布上的图像就会从画布中消失

Reactjs 单击一个按钮,画布上的图像就会从画布中消失,reactjs,Reactjs,嗨,我是reactjs的新手。当我拍摄webgl的截图时,截图会放在预览中。但是,我截图的画布上的webgl看起来鼓鼓的。我想这是因为小的webgl正试图适应比这个更大的画布 以下是捕获webgl的屏幕截图方法: window.screenshot = function(width, height) { const width1 = gl_active.canvas.width; const height1 = gl_active.canvas.height; gl_active.canvas

嗨,我是reactjs的新手。当我拍摄webgl的截图时,截图会放在预览中。但是,我截图的画布上的webgl看起来鼓鼓的。我想这是因为小的webgl正试图适应比这个更大的画布

以下是捕获webgl的屏幕截图方法:

window.screenshot = function(width, height) {
const width1 = gl_active.canvas.width;
const height1 = gl_active.canvas.height;

gl_active.canvas.width = width;
gl_active.canvas.height = height;

GL_draw(gl_active);
const buffer = get_buffer();

let canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
let ctx = canvas.getContext('2d');

//gl has reverse y-axis, flip vertically
const flipped_buffer = [],
    channels = 4;   //RGBA
for (let i = buffer.length - width * channels; i >= 0; i -= width * channels) {
    for (let e = 0; e < width * channels; e++) {
        flipped_buffer.push(buffer[i + e]);
    }
}
let imageData = ctx.createImageData(width, height);
imageData.data.set(flipped_buffer);
ctx.putImageData(imageData, 0, 0);
return canvas.toDataURL();
window.screenshot=函数(宽度、高度){
常量宽度1=gl_active.canvas.width;
常量高度1=gl_active.canvas.height;
gl_active.canvas.width=宽度;
gl_active.canvas.height=高度;
总图绘制(总图激活);
const buffer=get_buffer();
让canvas=document.createElement('canvas');
画布宽度=宽度;
canvas.height=高度;
设ctx=canvas.getContext('2d');
//gl具有反向y轴,垂直翻转
常量翻转_缓冲区=[],
通道=4;//RGBA
对于(设i=buffer.length-width*通道;i>=0;i-=width*通道){
对于(设e=0;e
})

我调用屏幕截图方法如下 预览=屏幕截图(300300)


有人能帮我吗。谢谢。

请添加相关代码。如果可能的话,创建一个codepen或jsfiddle链接。为了帮助您,创建一个[最小、完整且可验证的示例()。一个codepen或jsfiddle也不错