Javascript fabric.js是缩放整个图像的最简单方法

Javascript fabric.js是缩放整个图像的最简单方法,javascript,node.js,fabricjs,Javascript,Node.js,Fabricjs,我在客户端使用fabric.js允许用户在浏览器中创建图像,然后fabric.js将图像序列化为json并发送到节点服务器。然后,后端将JSON字符串反序列化为一个对象,并将图像本地保存为文件 问题是: 结果图像必须很大,例如3000x3000px, 现在我使用 用户将背景图像(3000x3000)上传到画布中,然后我按如下方式缩放: fabric.Image.fromURL(data, function (img) { img.scale(0.2);

我在客户端使用fabric.js允许用户在浏览器中创建图像,然后fabric.js将图像序列化为json并发送到节点服务器。然后,后端将JSON字符串反序列化为一个对象,并将图像本地保存为文件

问题是:

结果图像必须很大,例如3000x3000px, 现在我使用
用户将背景图像(3000x3000)上传到画布中,然后我按如下方式缩放:

fabric.Image.fromURL(data, function (img) {
            img.scale(0.2);             
            canvas.add(img).renderAll();            
        });
它填满了整个画布


然后用户将文本添加到画布上,例如偏移量x,y:100200,然后单击提交按钮。服务器必须将600x600图像取消缩放为3Kx3K,还必须取消缩放文本并重新计算偏移量。有没有最简单的缩放操作方法?

尝试将图像保持在缩放1。 检测图像应缩放的大小,并改为缩放整个画布:

canvas.setZoom(0.2)
在节点环境中,一旦加载回图像,就将画布尺寸设置为图像尺寸

缩放不会导出为json,因此您不必更改任何内容


您应该获得与图像一样大的画布,并保存所有比例。

尝试将图像保持在比例1。 检测图像应缩放的大小,并改为缩放整个画布:

canvas.setZoom(0.2)
在节点环境中,一旦加载回图像,就将画布尺寸设置为图像尺寸

缩放不会导出为json,因此您不必更改任何内容


您应该获得与图像一样大的画布,并保存所有比例。

您想保持图像分辨率还是只想使其大小为3k x 3k?我想保存用户的分辨率,我使用600x600,因为大图像将超出显示器尺寸如何保持3k x 3k尺寸的图像分辨率您想保持图像分辨率还是只想使其保持3k x 3k尺寸?我想保存用户的分辨率,我使用600x600,因为大图像将超出显示器尺寸如何在3k x 3k的尺寸下保持图像分辨率