added a coouple of scripts to help me vectorize multi-layer photoshop files into svg

master
jorgevasquezp 7 years ago
parent 36e8bd0c23
commit 92495623fc

@ -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

@ -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))
Loading…
Cancel
Save