🢂Konwersja obrazów z formatu PNG do SVG w bashu
Funkcje które konwertują wszystkie pliki w katalogu z PNG do SVG.
Podane poniżej funkcje służą temu samemu celowi, ale korzystają z różnych narzędzi, co może wpływać na wynik końcowy i jakość przekształconych obrazów.
Najczęściej używam pod konsolą konwersji za pomocą potrace
.
Warto zaznaczyć, że convert i potrace są częścią ImageMagick, podczas gdy Inkscape to osobne narzędzie graficzne i wymaga Xów.
Konwersja za pomocą potrace
-
convert "$f_png" "$f.pnm"
: Konwertuje plik PNG na PNM (format pośredni). -
potrace "$f.pnm" -s -o "$f.svg"
: Konwertuje plik PNM na SVG. -
Wklej ten kod w katalogu w którym są pliki PNG
( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" && rm -f "$f.pnm" ; done)
- lub dodaj do ~/.bash_aliases
alias png2svg='( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" && rm -f "$f.pnm" ; done)'
- Tak wygląda ten kod sformatowany
(
set -x
for f_png in *.png; do
f="${f_png%.png}"
convert "$f_png" "$f.pnm" &&
potrace "$f.pnm" -s -o "$f.svg" &&
rm -f "$f.pnm"
done
)
Konwersja za pomocą inkscape
-
inkscape "$f_png" --export-plain-svg="$f.svg" -z
Wykorzystuje Inkscape do bezpośredniej konwersji pliku PNG na SVG. -
Wklej to w katalogu
( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; inkscape "$f_png" --export-plain-svg="$f.svg" -z; done)
- ~/.bash_aliases
alias png2svgInc='( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; inkscape "$f_png" --export-plain-svg="$f.svg" -z; done)'