From 92495623fcacbaf0ddfb24d61de6ed80770186b7 Mon Sep 17 00:00:00 2001 From: jorgevasquezp Date: Thu, 10 Jan 2019 18:43:26 -0800 Subject: [PATCH] added a coouple of scripts to help me vectorize multi-layer photoshop files into svg --- bash/vectorize.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++++ python/mergesvg.py | 17 +++++++++++ 2 files changed, 87 insertions(+) create mode 100755 bash/vectorize.sh create mode 100755 python/mergesvg.py diff --git a/bash/vectorize.sh b/bash/vectorize.sh new file mode 100755 index 0000000..26f5771 --- /dev/null +++ b/bash/vectorize.sh @@ -0,0 +1,70 @@ +## requires inkscape potrace npm npm(svg-join) imagemagick +# for all +extra="-k .85" +# for spray +#extra="-t 1 -u 1.5 -k .75" +temp="temp.png" +for i; + do + ppm_file="${i%.*}.ppm" + png_file="${i%.*}.png" + convert -size 512x512 xc:#00000000 $temp + + for j in $(identify -format "%[scene] " "$i"); + do + if [ $j -gt 0 ] + then + psd_layer=$i[$j]; + g=$(identify -format "%[g]" $i[$j]); + out_layer=${i%.*}_layer-$j + + color=$(convert $psd_layer -alpha off -resize 1x1 TXT:- | grep -oE "[\#0-9ABCDEF]{7}") + + if [ $((0x${color:1:2})) -lt 60 ] + then + $(true) + color="#000000" + else + if [ $color = "#FFFFFF" ] + then + $(true) + #echo "Uno blanco" + else + #echo "Uno gris" + color="#888888" + fi + + fi + + + + + composite $psd_layer -geometry $g $temp $out_layer.png; + convert $out_layer.png -alpha extract -negate -normalize $out_layer.ppm; + rm $out_layer.png; + #potrace $out_layer.ppm -b svg --flat --progress $extra; + potrace $out_layer.ppm -b svg --flat $extra; + #cat $out_layer.svg | echo sed "s/#000000/$(echo $color)/" + #cat $out_layer.svg | sed "s/#000000/$(convert $psd_layer -alpha off -resize 1x1 TXT:- | grep -oE "[\#0-9ABCDEF]{7}")/" > tmp.svg + cat $out_layer.svg | sed "s/#000000/$color/" > tmp.svg + mv tmp.svg $out_layer.svg + rm $out_layer.ppm; + fi + + done + + #convert "$i" -layers composite -alpha extract -extent 512x512 $png_file; + #convert "$i" -background white -flatten $ppm_file; + + #potrace $ppm_file -b svg --flat --progress -t 1 -u 1.5 -k $k + #potrace $ppm_file -b svg --flat --progress $extra + #base_name=${ppm_file%.*} + #inkscape -f $base_name.svg -E $base_name.eps + #rm $ppm_file $base_name.svg + done +svgs=$(ls ${i%.*}*svg) +mergesvg.py $svgs ${i%.*}.svg +#inkscape -f ${i%.*}.svg -E ${i%.*}.eps +#rm ${i%.*}.svg +rm $(echo $svgs) +rm $temp diff --git a/python/mergesvg.py b/python/mergesvg.py new file mode 100755 index 0000000..aab45c5 --- /dev/null +++ b/python/mergesvg.py @@ -0,0 +1,17 @@ +#!/usr/bin/python +import svgutils.compose as c +import svgutils.transform as st +import sys,os + +outfile = sys.argv[-1] +infiles = sys.argv[1:-1] + +insvgs = [c.SVG(i) for i in infiles] +figure = c.Figure( + "512px", "512px", + *insvgs + ) +figure.save( os.getcwd()+os.sep+outfile ) +#print ('Number of arguments:', len(sys.argv), 'arguments.') +#print ('Argument List:', str(sys.argv)) +