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

时间:2013-05-21 14:43:19

标签: canvas imagemagick html5-canvas base64 fabricjs

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

Elements on the canvas disappear w/ jsfiddle

canvas.toDataURL() for large canvas

......但没有成功。

我的问题是下一个:

我有一个画布,例如这些尺寸:1123x1965像素,我需要调整到29.7x52厘米,并将它们放在300dpi。

我的理性如下:

  • 在编辑完模板后,转换为完整尺寸,然后将png图像保存为实际尺寸(以像素为单位),已经乘以300 dpi。做了这个计算:

29.7厘米:29.7 * 300 = 8910

52厘米:52 * 300 = 15600

使用它的问题基本上是画布消失。请看一下:Elements on the canvas disappear w/ jsfiddle

并且todataurl功能不起作用:canvas.toDataURL() for large canvas

  • 然后使用库imagemagick转换为300 dpi,就像这个命令:convert test.png -units PixelsPerCentimeter -density 300 test2.png

任何人都可以帮助我?

谢谢。

2 个答案:

答案 0 :(得分:2)

将2.54上已有的内容除以基于英寸的像素。虽然,更正确的术语是PPI而不是DPI(因为纸上的点与屏幕上的像素略有不同)。

29.7 cm * 300 PPI / 2.54 = 3508 pixels

52.0 cm * 300 PPI / 2.54 = 6142 pixels

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

答案 1 :(得分:1)

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

计算应该是:

29.7厘米:29.7 * 118 = 3504.6

52厘米:52 * 118 = 6136

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