我有一个包含许多多边形的SVG:
https://github.com/barrycarter/bcapps/blob/master/sample-data/current-temps.svg
看起来有点像这样:
裁剪并转换为PNG可以正常工作:
convert -crop 100x100+200+150 current-temps.svg /tmp/exhb2.png
然后,裁剪和缩放失败:
convert -crop 100x100+200+150 -scale 1000x750 current-temps.svg /tmp/exhb3.png
如何在裁剪前让ImageMagick“放大”SVG?
(我意识到ImageMagick只能读取,而不能写入SVG格式,但是 它应该还能做我想做的事吗?)
编辑/解决:
谢谢,robermorales。
inkscape -z -e out4.png -w 1000 -h 1000 -a 200:200:400:400 current-temps.svg
(例如)像魅力一样工作。
我也意识到复制SVG,调整变换线:
<g transform="scale(3,3) rotate(-90) translate(-90,180)">
然后转换为PNG是另一种解决方案。
答案 0 :(得分:6)
尝试在裁剪前进行缩放。
但是,使用inkscape cli更容易。
很抱歉没有链接,afk
答案 1 :(得分:1)
不要将SVG裁剪为PNG。 您可以使用viewBox重新定义裁剪区域,然后尽可能将该SVG转换为最高解决方案中的PNG。 查看这篇文章https://www.sarasoueidan.com/blog/svg-coordinate-systems/解释什么是viewBox,你会明白我的想法。
答案 2 :(得分:0)
这里适当的ImageMagick语法是读取输入,然后裁剪,然后调整大小。请参阅http://www.imagemagick.org/Usage/basics/#why虽然这不太可能是问题所在。问题是-scale会复制像素,因此使其变得模糊。你应该用-resize替换-scale。这将更平滑,但您要求的放大倍数模糊。试试这个命令:
convert current-temps.svg -crop 100x100+200+150 -resize 1000x750 exhb3.png