1

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

画布上的元素随着 jsfiddle 消失

canvas.toDataURL() 用于大画布

……但没有成功。

我的问题是下一个:

例如,我有一个具有以下尺寸的画布:1123x1965 像素,我需要将其调整为 29.7x52 厘米并将它们放在 300dpi 中。

我的理性如下:

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

29.7厘米:29.7*300 = 8910

52厘米:52*300 = 15600

使用这个的问题基本上是画布消失了。请看这个:画布上的元素消失 w/ jsfiddle

并且 todataurl 函数不起作用:canvas.toDataURL() for large canvas

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

任何人都可以帮助我吗?

谢谢你。

4

2 回答 2

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 厘米))。

于 2013-05-21T20:52:00.497 回答
1

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

计算应该是:

29.7厘米:29.7*118 = 3504.6

52厘米:52*118 = 6136

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

于 2013-05-21T14:54:17.307 回答