我正在使用一个画布元素,其高度600
为1000
像素,宽度为几十或几十万像素.然而,在一定数量的像素(显然未知)之后,画布不再显示我用JS绘制的形状.
有谁知道是否有限制?
在Chrome 12和Firefox 4中都进行了测试.
我测试了这个包:https : //preview.npmjs.com/package/resize-base64
制作Canvas元素需要前端部分..等等,我只需要在没有前端的情况下制作这个过程
我使用 react native,所以任何针对 React/Native、node 或 native javascript 的解决方案都是可以接受的。
我在其他许多人中看到了这个有趣的线程:在不使用画布的情况下在JavaScript中调整Base-64图像的大小
但是,当我使用创建一个屏幕外画布
const canvas = document.createElement('canvas');
Run Code Online (Sandbox Code Playgroud)
结果图像是透明的,大小甚至不匹配参数.如果我在DOM的画布上画一切都很好
const canvas = document.getElementById('canvas');
Run Code Online (Sandbox Code Playgroud)
这是我的调整大小功能,保持输入图像比例:
resizeImage(file) {
const canvas = document.createElement('canvas');
// const canvas = document.getElementById('canvas');
const context = (<HTMLCanvasElement>canvas).getContext('2d');
// set maximum width and height of output image
const maxW = 400;
const maxH = 400;
const img = new Image;
img.onload = function () {
const iw = img.width;
const ih = img.height;
const scale = Math.min((maxW / iw), (maxH / ih));
const iwScaled = iw * scale;
const ihScaled …
Run Code Online (Sandbox Code Playgroud)