#1 楼
或不安装任何东西:qlmanage -t -s 1000 -o . picture.svg
它将产生picture.svg.png宽1000像素。 OS X 10.6.3。
评论
不幸的是,这将图像裁剪为正方形。
–马丁·彼得斯(Martijn Pieters)
2011年1月30日15:13
嗯,qlmanage -t给出了快速查找(在Finder等中)使用的缩略图。聪明的主意。不幸的是,这些缩略图可能有问题,特别是在涉及文本时。
–ShreevatsaR
2011年6月6日8:07
这将在第一象限中生成带有svg文件的图像。不自动裁剪。尝试从名词项目转换文件-希望这能奏效。
– Alex Cook
2012年11月12日20:40
该解决方案没有考虑透明度。 @ahti的答案中的rsvg-convert工具对我来说是可行的。
– BenR
16年5月19日在8:30
将宽度和高度参数都放在-s选项之后对我不起作用。仍将其裁剪为正方形。很沮丧!
– Erik van der Neut
17年8月25日在7:45
#2 楼
我发现对我来说,最好的工具是rsvg-convert
。 可以在带有
brew install librsvg
的brew中找到它,其用法如下:是自动确定的。评论
这是唯一在Mavericks和commons.wikimedia.org/wiki/上为我工作的人。
–阿伦·艾玛迪亚(Aron Ahmadia)
2014年6月10日的1:03
实际上,这是可行的,而ImageMagick的convert会发布错误,并且无法掩盖复杂的SVG
– Brice
15年4月27日在10:03
这是迄今为止为OS X Yosemite +1找到的最好的解决方案!
–格雷格·马丁(Greg Martin)
2015年5月9日15:03
使用rsvg-convert时,生成的.png具有正确的尺寸,但是图像显示为全黑而不是原始颜色。使用qlmanage可以将图像裁剪为正方形。仍在寻找解决方案:-(
– Erik van der Neut
17年8月25日在7:47
@Ahti你是对的!我没有在您的答案中注明正确的包装名称。如果正确遵循说明,则您的说明会完美地发挥作用,而rsvg-convert就像一个符咒。麻烦您了
–汤姆
20 Apr 23'2:09
#3 楼
ImageMagick是一种功能非常强大的命令行图像编辑器,如果它具有GUI,它可能会与Photoshop媲美。但是谁仍然需要那些。 :P安装后,类似以下内容会将.svg转换为.png:
$ convert picture.svg picture.png
未删除原始.svg。
评论
在显示中有点像GUI。
–伊格纳西奥·巴斯克斯(Ignacio Vazquez-Abrams)
10-4-26'4:04
当我使用Fink安装ImageMagick时,无法将svg转换为png-出现了一些错误。原来,我还需要安装librsvg2-bin。
–tst
2010年5月21日在12:44
如果未安装librsvg2-bin(例如在OS X上),它将失败。无法找到将其安装在OS X上的方法。
– John Sheehan
2012年8月3日在18:53
如果您要调整SVG的大小,因为它会生成模糊的图像,那么这将无法正常工作。
–βξhrαng
13年5月23日在3:04
它也不能正确转换所有SVG文件。至少qlmanage获得了图像的所有部分。
–约翰
2014年2月21日19:50在
#4 楼
使用Inkscape的Commandline-Interface可以为我产生最佳结果:安装Inkscape:
brew cask install inkscape
将test.svg转换为宽度为1024(保持宽高比)的output.png:
/Applications/Inkscape.app/Contents/MacOS/inkscape --export-type png --export-filename output.png -w 1024 test.svg
旧答案(在最新的inkscape中不再起作用):
/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png output.png -w 1024 -h 768 input.svg*
评论
这对我有用! -我使用Inkscape创建了更大的SVG
–matheszabi
13-10-7在21:56
这是正确呈现我的手写svg的唯一方法
–格里芬
2014年7月31日23:45
转换无法从SVG生成良好的PNG文件。到目前为止,使用Inkscape是最好的方法。
– ol_v_er
2015年2月27日在7:43
我在查找文件时遇到问题,因此以inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png的形式运行
– Andrei
2015年6月7日在8:32
inkscape --export-type =“ png” $(ls -q)就像Magic一样,可以将我目录中的所有SVG文件导出到PNG文件中,质量很好!
– Chathura Kulasinghe
20-05-14在10:04
#5 楼
好的,我找到了一种在Mac上使用Google Chrome的简单方法。 ,则是要在网页中查看webp
图像(必须在png
文件中),右键单击该图像并选择“复制图像”,然后粘贴到“预览”应用中。 >下载或将jpg
文件放入您的硬盘驱动器,例如svg
现在,在同一文件夹中,只需制作一个包含以下内容的HTML文件
html
:现在,在Google Chrome浏览器中打开该html文件。您应该看到该图像。现在,只需右键单击图像,然后选择“复制图像”
转到Mac的预览应用程序,然后选择
svg
文件,现在有了somefile.svg
文件,您就拥有了tmp.html
文件。 (或其他文件类型)。此版本已在Mac OS X El Capitan的当前Chrome(版本48.0)上进行了测试。
更新:我不确定是否由于某些限制由Google Chrome实施。我只是使用Chrome 58.0尝试了SVG文件,但从上述方法中得到的图像很小。如果您也看到这种情况,也可以使用
<img src="somefile.svg" style="height: 82vh; margin-top: 9vh; margin-left: 9vh">
,或者,如果您想获得更多利润,请使用:
<img src="somefile.svg" style="height: 64vh; margin-top: 18vh; margin-left: 18vh">
,您会在屏幕上得到足够的图像进行屏幕截图-例如在Mac上使用CmdShift4或CmdShift3。确保首先将Chrome窗口的大小调整为屏幕上允许的最大大小。
评论
智能解决方案!
– Manu
16 Mar 2 '16 at 15:07
实际上,这对我来说是最好的结果,因为它的呈现方式与浏览器完全相同。
–詹森·哈斯兰(Jason Haslam)
17年1月26日在1:25
生成的图像对我来说分辨率很差
–迈克尔
17-09-22在16:02
巧妙:)但是对于非常大的SVG,如@Michael所述,所得图像的分辨率太低。
–waldyrious
18-10-23在10:24
#6 楼
我已经使用node / npm进行了svgexport的开发,它是跨平台的,可以很简单地实现:评论
到目前为止,这是最容易使用和记住的一种。另外,在我看来,唯一能产生正确结果的人。
– MarkoGrešak
17年5月9日在22:09
最终的分辨率对我来说不是很好。
–迈克尔
17年9月22日在16:22
#7 楼
如果要一次执行许多操作,则可以:mogrify -format png *.svg
也有一些选项可以即时调整大小。
评论
mogrify也是ImageMagick的标准配置。
–ShreevatsaR
2011年6月6日上午8:19
效果很好,但速度很慢。
– Meekohi
2014年1月24日21:58
-1?有人认为这没有帮助?怎么了
–防御日
2014年7月29日在20:41
我不是投票否决的人,但值得注意的是ImageMagick在调整大小之前将svg愚蠢地转换为任意大小的光栅图像,导致输出模糊。
–大田
2015年11月1日19:47
首先安装inkscape(并将其放在路径上)可以改善转换结果。
–霍莉·康明斯
19年11月26日在17:28
#8 楼
试试Apache Batik。java -jar batik-rasterizer.jar FILES
它还支持批处理转换,并具有许多其他有用的选项。
#9 楼
您也可以使用phantomjs渲染svg。优点是它可以像浏览器一样呈现它,因为它基本上是无头的WebKit。下载后,需要从examples文件夹中获取phantomjs(二进制)和rasterizer.js文件。 >
phantomjs examples/rasterize.js Tiger.svg out.png
评论
作为参考,可以将其与brew cask install phantomjs一起安装。在我的安装中,examples文件夹位于路径/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/中。
–waldyrious
18-10-23在10:26
#10 楼
这就是我使用的方法:
brew install imagemagick --with-librsvg
然后运行以下命令:
find . -type f -name "*.svg" -exec bash -c 'convert q4312079q q4312079q.png' {} \;
rename 's/svg\.png/png/' *
希望它会有所帮助。
评论
补充说明该命令的功能将非常有用。
– P A N
20 Jan 27 '20 at 19:42
#11 楼
无需安装任何内容的另一种方法。但是不在命令行中。在Safari中打开.svg文件。
按alt-command-i打开检查器。
右键单击
<svg>
标签,选择“捕获屏幕截图”。 (请注意,请勿放大图像。)P.S.要放大.svg图像(如果它太小),请尝试在文本编辑器中打开.svg文件,并将
0
附加到每个数字(元属性中除外)。这可以通过从(\d+)
到
的全局正则表达式替换来完成,例如,其中
是用于反向引用的占位符。评论
您可能应该提到,这与太极者无极而生的答案几乎相同。
–斯科特
19年5月11日19:27
#12 楼
我在Linux上使用此命令。mogrify +antialias -density 2000 -verbose -format png *.svg
我了解到,如果没有“ -density”参数,则位图将非常像素化。更改-density值以满足您的需求。
评论
即使具有密度,转换也不会生成像矢量图像一样清晰的图像。尝试使用Apache Batik。
–βξhrαng
13年5月23日在3:06
#13 楼
ImageMagick的convert命令(使用其他一些参数)对我来说是什么。这是我的批处理Bash脚本解决方案,它将任务划分为多个进程以利用您的所有内核!batchConvertToSVG.sh(将进程数作为参数):
end=$(( - 1 ))
for i in `seq 0 $end`;
do
echo Spawning helper $i of $end
./convertToSvgHelper.sh $i &
done
convertToSvgHelper.sh:
n=
for file in ./*.svg; do
filename=${file%.svg}
echo converting file named $filename
test $n -eq 0 && convert -format png -resize 74 -background transparent -density 600 $file $filename.png
n=$((n+1))
n=$((n%))
done
#14 楼
您可能要签出svgexport:svgexport input.svg output.png 64x
svgexport input.svg output.png 1024:1024
svgexport是我制作的用于将svg导出到png / jpeg的简单命令行工具和npm软件包。要安装svgexport,请安装npm,然后运行:
npm install -g svgexport
#15 楼
我基于@seb的答案创建了一个函数function svg2png() {
svgFile=;
width=;
if [[ -z `file ${svgFile} | grep 'Scalable Vector Graphics image'` ]]; then
echo "file ${svgFile} type is not SVG";
return 1;
fi
echo "file ${svgFile} type is SVG";
if [[ -z ${width} ]]; then
echo "width not specified, using width=1024 as default";
width=1024;
fi
pngFile="$(echo ${svgFile} | sed "s/\.[s,S][v,V][g,G]/\.png/")";
inkscape --export-type png --export-filename ${pngFile} -w ${width} ${svgFile};
}
将其添加到您的
.bashrc
或.zshrc
中并执行source .bashrc
# or
source .zshrc
用法:
svg2png ./Documents/times_clocks .svg 2048
#16 楼
如前所述,ImageMagick可以解决问题。我只是想为GraphicsMagick添加一点,它是ImageMagick的旧分支,具有一些改进(通过fink安装时,依赖项膨胀少得多)。#17 楼
您可以将SVG文件的整个文件夹批量转换为PNG。我使用了Inkscape命令行界面来生成宽度为80px的png文件。#18 楼
wkhtmltoimage(来自项目wkhtmltopdf)可以很好地进行此转换:评论
尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。 -来自评论
– Blackwood
18/12/14在4:09
@Blackwood很好,已更新。
–georgexsh
18/12/14在8:11
#19 楼
我已经开始组装工具以提供用于常见操作的简化界面。您可以将SVG转换为PNG,如下所示: 。
如果没有其他内容,请查看源代码,了解如何编写自己的脚本以使用JavaScript进行操作。
评论
我找到了一种方法,如果您有Google Chrome浏览器...并且不需要安装任何其他东西:superuser.com/questions/134679 / ...cairosvg.org适用于python3,似乎没有问题。 pip3安装cairosvg