initial commit
This commit is contained in:
63
apps/svg_parse_test.py
Normal file
63
apps/svg_parse_test.py
Normal file
@@ -0,0 +1,63 @@
|
||||
import pydiffvg
|
||||
import sys
|
||||
import numpy as np
|
||||
import torch
|
||||
sys.path.append("../pydiffvg")
|
||||
|
||||
from optimize_svg import OptimizableSvg
|
||||
|
||||
pydiffvg.set_use_gpu(False)
|
||||
|
||||
"""
|
||||
for x in range(100000):
|
||||
inmat=np.eye(3)
|
||||
inmat[0:2,:]=(np.random.rand(2,3)-0.5)*2
|
||||
decomp=OptimizableSvg.TransformTools.decompose(inmat)
|
||||
outmat=OptimizableSvg.TransformTools.recompose(torch.tensor(decomp[0],dtype=torch.float32),torch.tensor(decomp[1],dtype=torch.float32),torch.tensor(decomp[2],dtype=torch.float32),torch.tensor(decomp[3],dtype=torch.float32)).numpy()
|
||||
dif=np.linalg.norm(inmat-outmat)
|
||||
if dif > 1e-3:
|
||||
print(dif)
|
||||
print(inmat)
|
||||
print(outmat)
|
||||
print(decomp)"""
|
||||
|
||||
#infile='../../data/test_data/linear_grad_alpha_aspaths.svg'
|
||||
#infile='../../data/note_small.svg'
|
||||
infile='linux.svg'
|
||||
|
||||
canvas_width, canvas_height, shapes, shape_groups = \
|
||||
pydiffvg.svg_to_scene(infile)
|
||||
scene_args = pydiffvg.RenderFunction.serialize_scene(\
|
||||
canvas_width, canvas_height, shapes, shape_groups)
|
||||
render = pydiffvg.RenderFunction.apply
|
||||
img = render(canvas_width, # width
|
||||
canvas_height, # height
|
||||
2, # num_samples_x
|
||||
2, # num_samples_y
|
||||
0, # seed
|
||||
*scene_args)
|
||||
# The output image is in linear RGB space. Do Gamma correction before saving the image.
|
||||
pydiffvg.imwrite(img.cpu(), 'test_old.png', gamma=1.0)
|
||||
|
||||
#optim=OptimizableSvg('linux.svg',verbose=True)
|
||||
optim=OptimizableSvg(infile,verbose=True)
|
||||
|
||||
scene=optim.build_scene()
|
||||
scene_args = pydiffvg.RenderFunction.serialize_scene(*scene)
|
||||
render = pydiffvg.RenderFunction.apply
|
||||
img = render(scene[0], # width
|
||||
scene[1], # height
|
||||
2, # num_samples_x
|
||||
2, # num_samples_y
|
||||
0, # seed
|
||||
*scene_args)
|
||||
|
||||
|
||||
|
||||
with open("resaved.svg","w") as f:
|
||||
f.write(optim.write_xml())
|
||||
|
||||
# The output image is in linear RGB space. Do Gamma correction before saving the image.
|
||||
pydiffvg.imwrite(img.cpu(), 'test_new.png', gamma=1.0)
|
||||
|
||||
print("Done!")
|
Reference in New Issue
Block a user