Jak przekonwertować obraz PNG na SVG?
Jak przekonwertować obraz PNG na SVG?
Odpowiedzi:
Istnieje strona internetowa, na której możesz przesłać swoje zdjęcie i zobaczyć wynik.
Ale jeśli chcesz pobrać obraz SVG, musisz się zarejestrować. (Jeśli się zarejestrujesz, otrzymasz 2 zdjęcia za darmo)
potrace
ma nie obsługiwać PNG jako pliku wejściowego, ale PNM .
Dlatego najpierw convert
od PNG do PNM:
convert file.png file.pnm # PNG to PNM
potrace file.pnm -s -o file.svg # PNM to SVG
potrace -s
=> Plik wyjściowy to S VGpotrace -o file.svg
=> Zapisz dane wyjściowe do file.svg
convert 2017.png 2017.pnm
Plik tymczasowy = 2017.pnm
potrace 2017.pnm -s -o 2017.svg
ykarikos proponuje skrypt png2svg.sh, który ulepszyłem:
#!/bin/bash
File_png="${1?:Usage: $0 file.png}"
if [[ ! -s "$File_png" ]]; then
echo >&2 "The first argument ($File_png)"
echo >&2 "must be a file having a size greater than zero"
( set -x ; ls -s "$File_png" )
exit 1
fi
File="${File_png%.*}"
convert "$File_png" "$File.pnm" # PNG to PNM
potrace "$File.pnm" -s -o "$File.svg" # PNM to SVG
rm "$File.pnm" # Remove PNM
Jeśli chcesz przekonwertować wiele plików, możesz także użyć następującego wiersza poleceń:
( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" ; done )
Zobacz także to dobre porównanie konwerterów rastrowych na wektorowe na Wikipedii.
potrace
czarno-białych ikon. Dziękuję za twój komentarz. Ale przepraszam, nie mam pojęcia, jak zachować kolory ... Ho! Mam pomysł: jeśli twój oryginalny obraz ma kilka kolorów (powiedzmy trzy unikalne kolory), możesz utworzyć trzy początkowe obrazy (po jednym dla każdego koloru). Następnie przekonwertuj na SVG. I na koniec scal trzy treści SVG w jednym pliku (SVG jest oparty na XML). Mam nadzieję, że to może pomóc ... Pozdrawiam ;-)
convert
i potrace
są dostępne na wielu platformach. Używam komputerów z systemem Linux. Właśnie użyłem tych poleceń wczoraj do stworzenia pliku SVG ze zeskanowanego papieru. Możesz zobaczyć wynik: cpp-frug.github.io/images/Cpp-President-2017.svg Proszę wyjaśnić więcej o swoim celu. Czego chcesz / zastanawiasz się? Jaka jest twoja potrzeba / życzenie? Pozdrawiam ;-)
Png to styl grafiki bitmapowej, a SVG to projekt graficzny oparty na wektorze, który obsługuje bitmapy, więc nie jest tak, jakby przekształcił obraz w wektory, tylko obraz osadzony w formacie wektorowym. Możesz to zrobić za pomocą http://www.inkscape.org/, która jest bezpłatna. Osadziłby go, ale ma również silnik podobny do Live Trace, który spróbuje przekonwertować go na ścieżki, jeśli chcesz (używając potrace). Zobacz śledzenie na żywo w programie Adobe Illustrator (komercyjnym) jest przykładem:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
Możesz spojrzeć na potrace .
Łatwo
Jak zobaczysz, jeśli chcesz zrobić wiele innych sprytnych rzeczy .svg, możesz to zrobić również za pomocą Inkscape.
Spostrzeżenie nietechniczne: osobiście wolę tę metodę od „darmowych” ofert witryn, ponieważ oprócz często wymagającej rejestracji, przesyłając obraz, praktycznie we wszystkich aspektach, przekazuje się go właścicielowi witryny.
z programem Adobe Illustrator:
Otwórz Adobe Illustrator. Kliknij „Plik” i wybierz „Otwórz”, aby załadować plik .PNG do programu. Edytuj obraz w razie potrzeby przed zapisaniem go jako plik .SVG. Kliknij „Plik” i wybierz „Zapisz jako”. Utwórz nową nazwę pliku lub użyj istniejącej nazwy. Upewnij się, że wybrany typ pliku to SVG. Wybierz katalog i kliknij „Zapisz”, aby zapisać plik.
lub
konwerter online http://image.online-convert.com/convert-to-svg
Wolę AI, ponieważ możesz wprowadzić wszelkie potrzebne zmiany
powodzenia
Ku mojemu zdziwieniu, potrace, jak się okazuje, może przetwarzać tylko czarno-biały. Może to być dobre dla twojego przypadku użycia, ale niektórzy mogą uznać brak śledzenia kolorów za problematyczny.
Osobiście miałem satysfakcjonujące wyniki dzięki Vector Magic
Nadal nie jest idealny.
Uwaga dla osób korzystających Potrace i ImageMagick , przekształcając PNG obrazów z przezroczystością do PPM nie wydają się działać bardzo dobrze. Oto przykład, który używa -flatten
flagi convert
do obsługi tego:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm
Innym interesującym zjawiskiem jest to, że jako format wejściowy można użyć PPM (256 * 3 kolory, tj. RGB), PGM (256 kolorów, tj. Skala szarości) lub PBM (2 kolory, tj. Tylko biały lub czarny). Z moich ograniczonych obserwacji wynika, że na obrazach, które są antyaliasingowane, PPM i PGM (które produkują identyczne SVG, o ile widzę) zmniejszają kolorowy obszar, a PBM rozszerza kolorowy obszar (choć tylko trochę). Prawdopodobnie jest to różnica między pixel > (256 / 2)
testem a pixel > 0
testem. Możesz przełączać się między tymi trzema, zmieniając rozszerzenie pliku, tj. następujące zastosowanie PBM :
sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
Możesz także spróbować http://image.online-convert.com/convert-to-svg
Zawsze używam tego do moich potrzeb.
Właśnie znalazłem to pytanie i odpowiedzi, gdy próbuję zrobić to samo! Nie chciałem korzystać z niektórych innych wymienionych narzędzi. (Nie chcę oddawać mojego e-maila i nie chcę płacić). Odkryłem, że Inkscape (v0.91) może zrobić całkiem dobrą robotę. Ten samouczek jest szybki i łatwy do zrozumienia.
To tak proste, jak wybranie mapy bitowej w Inkskape i Shift + Alt + B.
W zależności od tego , dlaczego chcesz przekonwertować z .png na .svg, może nie być konieczne przechodzenie przez ten problem. Konwersja plików .png (rastrowych) do .svg (wektorowych) może być uciążliwa, jeśli nie znasz dobrze dostępnych narzędzi lub nie jesteś z zawodu grafikiem.
Jeśli ktoś wyśle ci duży plik o wysokiej rozdzielczości (np. 1024x1024), możesz zmienić jego rozmiar do praktycznie dowolnego rozmiaru w GIMP. Często występują problemy ze zmianą rozmiaru obrazu, jeśli rozdzielczość (liczba pikseli na cal) jest zbyt niska. Aby to naprawić w GIMP, możesz:
File -> Open
: twój plik .pngImage -> Image Properties
: sprawdź Rozdzielczość i przestrzeń kolorów. Chcesz rozdzielczość około 300 ppi. W większości przypadków chcesz, aby przestrzeń kolorów była RGB.Image -> Mode
: ustaw na RGBImage -> Scale Image
: pozostaw rozmiar w spokoju, ustaw i rozdzielczość Y na 300 lub więcej. Hit Scale.Image -> Scale Image
: rozdzielczość powinna teraz wynosić 300 i możesz teraz zmienić rozmiar obrazu do niemal dowolnego rozmiaru.Nie tak proste jak zmiana rozmiaru pliku .svg, ale zdecydowanie łatwiejsze i szybsze niż próba konwersji pliku .png na plik .svg, jeśli masz już duży obraz w wysokiej rozdzielczości.
Zakładam, że chcesz do tego napisać oprogramowanie. Aby zrobić to naiwnie, wystarczy znaleźć linie i ustawić wektory. Aby zrobić to inteligentnie, próbujesz dopasować kształty do rysunku (dopasowanie modelu). Ponadto powinieneś spróbować ustalić regiony bitmapowe (regiony, których nie można modelować przez wstyd lub stosowanie tekstur. Nie polecam wybrania tej trasy, ponieważ zajmie to trochę czasu i będzie wymagało odrobiny wiedzy graficznej i komputerowej. Jednak dane wyjściowe będą znacznie skalowane i skalowane znacznie lepiej niż oryginalne dane wyjściowe.
http://online-converting.com/image/convert-to-svg/ działał dobrze przy konwersji do svg
potrace
w wierszu poleceń - zastanawiam się, czego strona używa wewnętrznie ...
To narzędzie działa teraz bardzo dobrze.
Jeśli korzystasz z jakiegoś systemu Linux, imagemagick jest idealny. To znaczy
convert somefile.png somefile.svg
Działa to ze stertami różnych formatów.
W przypadku innych mediów, takich jak wideo i wykorzystanie audio (ffmpeg) , wiem jednak, że wyraźnie podałeś png do svg; Nadal jest związany z mediami.
ffmpeg -i somefile.mp3 somefile.ogg
Tylko wskazówka, jeśli chcesz przejrzeć wiele plików; pętla wykorzystująca podstawowe sztuczki z powłoką ..
for f in *.jpg; do convert $f ${f%jpg}png; done
To usuwa plik jpg i dodaje plik png, który mówi, że chcesz przekonwertować, co chcesz.