Canvas 使用300dpi(imagemagick)和todataurl/base64保存画布

Canvas 使用300dpi(imagemagick)和todataurl/base64保存画布,canvas,imagemagick,html5-canvas,base64,fabricjs,Canvas,Imagemagick,Html5 Canvas,Base64,Fabricjs,我在保存画布时遇到问题。我想那是因为我的画布太大了。我在这里请求帮助: ……但没有成功 我的问题是下一个: 例如,我有一个画布,它的尺寸是1123x1965像素,我需要将其调整到29.7x52厘米,并以300dpi的速度放置 我的理由如下: 编辑完模板后,将其转换为完整大小,然后将png图像保存为实际大小(以像素为单位),并已乘以300 dpi。进行了以下计算: 29.7厘米:29.7*300=8910 52厘米:52*300=15600 使用它的问题基本上是画布消失。请看这个: 和to

我在保存画布时遇到问题。我想那是因为我的画布太大了。我在这里请求帮助:

……但没有成功

我的问题是下一个:

例如,我有一个画布,它的尺寸是1123x1965像素,我需要将其调整到29.7x52厘米,并以300dpi的速度放置

我的理由如下:

  • 编辑完模板后,将其转换为完整大小,然后将png图像保存为实际大小(以像素为单位),并已乘以300 dpi。进行了以下计算:
29.7厘米:29.7*300=8910

52厘米:52*300=15600

使用它的问题基本上是画布消失。请看这个:

和todataurl函数不起作用:

  • 然后使用库imagemagick convert to 300 dpi,如以下命令:convert test.png-units PixelsPerCentimeter-density 300 test2.png
有人能帮我吗


谢谢。

DPI是指每英寸点数,而不是每厘米点数。 300 DPI(点/英寸)=118 dpcm(点/厘米)

计算应为:

29.7厘米:29.7*118=3504.6

52厘米:52*118=6136

我希望这有助于解决你的问题。
(我还不能发表评论。所以我把这个作为一个答案)

只要把你在2.54上已有的除以,就可以得到基于英寸的像素。不过,更正确的术语是PPI而不是DPI(因为纸上的点的行为与屏幕上的像素稍有不同)


(你确定大约52厘米是正确的吗?(A4短边x2,即A3是42厘米))。

非常感谢。是的,我认为你是对的。我今天正在尝试实现它。非常感谢你。
29.7 cm * 300 PPI / 2.54 = 3508 pixels

52.0 cm * 300 PPI / 2.54 = 6142 pixels