Javascript chrome 77更新后图像显示不正确

Javascript chrome 77更新后图像显示不正确,javascript,angularjs,google-chrome,dropzone.js,Javascript,Angularjs,Google Chrome,Dropzone.js,在我们的网站上,我们可以使用dropzone上传多张图片。 android chrome更新后,压缩后的大尺寸图像显示为黑色图像。 但我们在ios或桌面chrome中没有这个问题,问题只存在于android chrome中。 我怀疑这是由本地延迟加载引起的。有没有办法禁用它?最后,在检查了所有的压缩算法后,我在Android Chrome 77中发现了问题 在我们的算法中,从文件加载图像后,我们使用canvas.getContext'2d'.drawImage将图像绘制到画布中。然后,为了调整图

在我们的网站上,我们可以使用dropzone上传多张图片。 android chrome更新后,压缩后的大尺寸图像显示为黑色图像。 但我们在ios或桌面chrome中没有这个问题,问题只存在于android chrome中。
我怀疑这是由本地延迟加载引起的。有没有办法禁用它?

最后,在检查了所有的压缩算法后,我在Android Chrome 77中发现了问题

在我们的算法中,从文件加载图像后,我们使用canvas.getContext'2d'.drawImage将图像绘制到画布中。然后,为了调整图片的大小,我们使用画布上的drawImage来创建新的画布,并听到chrome打破了算法。 简单的回答是canvas.getContext'2d'。drawImage函数正确地使用图像作为输入,而不是使用画布作为输入

为了解决这个问题,我们首先计算正确的宽度和高度,然后读取具有所需尺寸的图像

作品:

    var canvas = document.createElement('canvas');
    canvas.width = img.width/2;
    canvas.height = img.height/2;
    var ctx = canvas.getContext('2d');
    ctx.drawImage(img, 0, 0, canvas.width, canvas.height);  
而且不起作用:

    var canvas = document.createElement('canvas');
    canvas.getContext('2d').drawImage(img, 0, 0); 
    var newCanvas = document.createElement('canvas');
    newCanvas.width = canvas.width / 2;
    newCanvas.height = canvas.height / 2;
    newCanvas.getContext('2d').drawImage(canvas, 0, 0, canvas.width/2, canvas.height/2);

最后,Chrome 77无法从画布上绘制画布。

最后,在检查了所有压缩算法后,我发现了Android Chrome 77的问题

在我们的算法中,从文件加载图像后,我们使用canvas.getContext'2d'.drawImage将图像绘制到画布中。然后,为了调整图片的大小,我们使用画布上的drawImage来创建新的画布,并听到chrome打破了算法。 简单的回答是canvas.getContext'2d'。drawImage函数正确地使用图像作为输入,而不是使用画布作为输入

为了解决这个问题,我们首先计算正确的宽度和高度,然后读取具有所需尺寸的图像

作品:

    var canvas = document.createElement('canvas');
    canvas.width = img.width/2;
    canvas.height = img.height/2;
    var ctx = canvas.getContext('2d');
    ctx.drawImage(img, 0, 0, canvas.width, canvas.height);  
而且不起作用:

    var canvas = document.createElement('canvas');
    canvas.getContext('2d').drawImage(img, 0, 0); 
    var newCanvas = document.createElement('canvas');
    newCanvas.width = canvas.width / 2;
    newCanvas.height = canvas.height / 2;
    newCanvas.getContext('2d').drawImage(canvas, 0, 0, canvas.width/2, canvas.height/2);

最终,Chrome 77无法从画布上绘制画布。

我们在另一个画布上绘制画布时再现了GPU内存泄漏:
可能是同一个问题。

我们在将画布绘制到另一个画布时再现了GPU内存泄漏:
可能是同样的问题。

这在其他浏览器中也会发生在Android上还是仅在Chrome上?在Microsoft Edge正常工作时,在opera mini中与Chrome存在同样的问题。Firefox似乎与dropzone不兼容。我发现问题出在使用“canvas”进行图像压缩时,你可以写一个答案来解决这个问题,并作为其他有此问题的人的参考这在其他浏览器中也会发生在Android上,还是仅仅在Chrome上?在Microsoft Edge正常工作的情况下,在opera mini中与Chrome存在相同的问题。Firefox似乎与dropzone不兼容。我发现问题出在使用“canvas”进行图像压缩时,你可以写一个答案来解决这个问题,并作为其他有此问题的人的参考谢谢你的回答@Andrey。这是内存泄漏,问题就在那里。我从上一张画布上取了一个句柄,并将其设置为空。谢谢你的回答@Andrey。这是内存泄漏,问题就在那里。我从前面的画布中获取一个句柄,并将其设置为null。