首页 > 解决方案 > 是否可以使用 FabricJS 设置 PNG 物理像素尺寸?

问题描述

PNG 规范包括物理像素尺寸(参见此处)。Fabric.js 是否支持设置这些值?如果是这样,如何设置这些?

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

标签: pngfabricjs

解决方案


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(...) 如果出于任何原因您更喜欢 blob 的优势而不是 dataUrls,则从 canvasElement 移动到 blob。


推荐阅读