在 6.9.11-60 版本中将 SVG 转换为 PNG 时,Imagemagick 会抛出“宽度或高度超出”,但在 6.9.10-23 版本中不会出现这种情况

问题描述 投票:0回答:1

我有一台装有 Ubuntu 20.4 和 ImageMagick 6.9.10-23 的服务器。

较新的服务器使用 Ubuntu 22.04.3 LTS 和 ImageMagick 6.9.11-60。

我上传了一个 SVG 文件,想要将其转换为 PNG 并调整其大小。

convert -format png -density 1200 -resize '255x255>' /folder/test.svg /folder/test.png

使用旧服务器可以完美运行。

使用 ImageMagick 6.9.11-60 的较新服务器会抛出:

convert-im6.q16:宽度或高度超出限制 /tmp/magick-IXLGAi-fnZE2OS1MPM_W1DzbcXjNnrdl @ error/cache.c/OpenPixelCache/3909。 Convert-im6.q16:没有定义图像 /srv/users/hessen/apps/edumaps/public/temp/temp.png @ error/convert.c/ConvertImageCommand/3229。

我比较了两个

/etc/ImageMagick-6/policy.xml
文件,它们具有相同的设置。只有旧的policy.xml声明:

<policy domain="resource" name="area" value="128MB"/>

新的声明:

<policy domain="resource" name="area" value="128MP"/>

我将其更改为

128MB
,但仍然是相同的错误消息。

我也与

convert -list resource
核实。两台服务器的输出相同,只是旧服务器状态
List length: 18.446744EP
和新服务器状态
List length: unlimited

Resource limits:
  Width: 16KP
  Height: 16KP
  List length: unlimited
  Area: 128MP
  Memory: 256MiB
  Map: 512MiB
  Disk: 1GiB
  File: 768
  Thread: 64
  Throttle: 0
  Time: unlimited

限制可以在docs中查看。但我在两台服务器上使用相同的文件。

SVG 文件为 744 x 1052 像素。

如何解决这个问题?

imagemagick
1个回答
0
投票

更改了这些行:

  <policy domain="resource" name="width" value="16KP"/>
  <policy domain="resource" name="height" value="16KP"/>

  <policy domain="resource" name="width" value="32KP"/>
  <policy domain="resource" name="height" value="32KP"/>

现在可以了。感谢一千个@snibgo。学分:https://github.com/ImageMagick/ImageMagick/issues/6926

© www.soinside.com 2019 - 2024. All rights reserved.