imagemagick

效果不太理想,有些svg图片,convert会生成灰色空白图片,另外尺寸也不方便控制。虽然可以使用参数 -resize 100x 但是这个是在转换后的像素点图上执行的,因此会让图像变得不清晰。

# svg图片地址为网络地址
curl -s https://example.com/country-flags/svg/cn.svg | convert svg:-  out.png

# 本地svg
convert input.svg output.png

python manim

这种方式可以任意调节svg的大小,另外是调整的矢量图的方式,然后才会渲染成像素点图的png等格式图片,因此不会损失质量。

from manim import *

class SvgToImage(Scene):
    def construct(self):
        self.add(SVGMobject(
            'input.svg',
            width=config.frame_width,
            height=config.frame_height
        ))

然后调用 manim ttt.py SvgToImage -s -r 300,200 -o ~/Desktop/out.png 这里的 -r 300,200表示输出的大小,这里的大小请保持原图的宽高比,否则会出现黑边。