是否可以使用 FabricJS 设置 PNG 物理像素尺寸?

Is it possible to set the PNG physical pixel dimensions using FabricJS?

PNG 规范包括物理像素尺寸(请参阅 here)。 Fabric.js 是否支持设置这些值?如果可以,如何设置?

编辑:我应该提到我正在尝试完全在浏览器中执行此操作。我没有使用 NodeJS。

fabricJS 不支持输出 DPI 值,但幸运的是我写了一个小库,可以让你做到这一点!

它适用于 blob 和 dataurl: https://www.npmjs.com/package/changedpi

我知道这似乎纯粹是广告,但我认为这段代码可以做到这一点,而且它确实做到了这一点,它适用于 PNG 和 JPEG。

// create the dataUrl at standard 72dpi
var dataUrl = canvas.toDataURL('image/jpeg', 0.92);
var daurl150dpi = changeDpiDataUrl(dataUrl, 150);


// create the blob at standard 72dpi
canvas.toBlob(function(blob) {
  changeDpiBlob(blob, 300).then(function(blob){
    // use your changed blob
  })
},'image/jpeg', 0.92);

这里使用的方法不是fabricJS的,对于dataUrl没有问题,你可以生成一个dataurl传给这里的这个函数,而对于blob你必须使用

fabricCanvas.toCanvasElement(...) 然后从 canvasElement 移动到 blob 如果出于任何原因你更喜欢 blob 的优势而不是 dataUrls。