archlinux php imagemagick,如何用ImageMagick将SVG转换为PNG?

我有一个SVG文件,其定义大小为16x16。 当我使用ImageMagick的转换程序将其转换为PNG时,我得到一个16x16像素的PNG,这太小了:

convert test.svg test.png

我需要指定输出PNG的像素大小。 -size参数似乎被忽略, -scale参数在PNG转换为PNG 后对其进行缩放。 到目前为止,我通过使用-density参数得到了最好的结果:

convert -density 1200 test.svg test.png

但我不满意,因为我想以像素为单位指定输出大小而不用数学来计算密度值。 所以我想做这样的事情:

convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png

那么我在这里使用的神奇参数是什么?

#1楼

这不是完美的,但它可以完成这项工作。

convert -density 1200 -resize 200x200 source.svg target.png

基本上它可以将DPI提高到足够高的水平(只需使用经过教育/安全的猜测),即调整大小的质量足够高。 我试图找到一个合适的解决方案,但经过一段时间后,我认为这对我目前的需求已经足够了。

注意:使用200x200! 强制给定的分辨率

#2楼

你为什么不试试inkscape命令行,这是我的bat文件将这个目录中的所有svg转换为png:

FOR %% x IN(* .svg)DO C:\\ Ink \\ App \\ Inkscape \\ inkscape.exe %% x -z --export-dpi = 500 --export-area-drawing --export-png =“% %〜nx.png”

#3楼

在这个例子中,我无法从ImageMagick中获得好的结果,但是Inkscape在Linux和Windows上做得很好:

inkscape -z -e test.png -w 1024 -h 1024 test.svg

以下是使用此命令将16x16 SVG缩放为200x200 PNG的结果:

ybxpA.png

mDPMo.png

仅供参考,我的Inkscape版本(在Ubuntu 12.04上)是:

Inkscape 0.48.3.1 r9886 (Mar 29 2012)

在Windows 7上,它是:

Inkscape 0.48.4 r9939 (Dec 17 2012)

#4楼

为了重新缩放图像,应使用选项-density 。 据我所知,标准密度为72,尺寸为1:1。 如果您希望输出png是原始svg的两倍,请将密度设置为72 * 2 = 144:

convert -density 144 source.svg target.png

#5楼

svgexport input.svg output.png 64x

svgexport input.svg output.png 1024:1024

svgexport是一个简单的跨平台命令行工具,我将svg文件导出到jpg和png,请参阅此处了解更多选项。 要安装svgexport install npm ,请运行:

npm install svgexport -g

编辑:如果您发现库有问题,请在GitHub上提交 ,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值