Spaces:
Sleeping
Sleeping
""" | |
Simple utility to render an .svg to a .png | |
""" | |
import os | |
import argparse | |
import pydiffvg | |
import torch as th | |
def render(canvas_width, canvas_height, shapes, shape_groups): | |
_render = pydiffvg.RenderFunction.apply | |
scene_args = pydiffvg.RenderFunction.serialize_scene(\ | |
canvas_width, canvas_height, shapes, shape_groups) | |
img = _render(canvas_width, # width | |
canvas_height, # height | |
2, # num_samples_x | |
2, # num_samples_y | |
0, # seed | |
None, | |
*scene_args) | |
return img | |
def main(args): | |
pydiffvg.set_device(th.device('cuda:1')) | |
# Load SVG | |
svg = os.path.join(args.svg) | |
canvas_width, canvas_height, shapes, shape_groups = \ | |
pydiffvg.svg_to_scene(svg) | |
# Save initial state | |
ref = render(canvas_width, canvas_height, shapes, shape_groups) | |
pydiffvg.imwrite(ref.cpu(), args.out, gamma=2.2) | |
if __name__ == "__main__": | |
parser = argparse.ArgumentParser() | |
parser.add_argument("svg", help="source SVG path") | |
parser.add_argument("out", help="output image path") | |
args = parser.parse_args() | |
main(args) | |