Jak przekonwertować PNG na SVG za pomocą oprogramowania?

29

Chciałbym móc całkowicie przycinać struktury chemiczne SVG (patrz to pytanie ), które zostały utworzone przy użyciu MarvinSketch i myślę, że mogłem wymyślić rozwiązanie; Używam MarvinSketch, aby utworzyć duży plik PNG, następnie przyciąć ten plik za pomocą GIMP , a następnie przekonwertować PNG na SVG . Dlatego chciałbym wiedzieć, czy ktoś wie, jakie bezpłatne oprogramowanie mogę zainstalować (nie lubię korzystać z konwerterów online, ponieważ zawsze jestem podejrzany o złośliwe oprogramowanie) na Ubuntu, aby uzyskać wysokiej jakości konwersję PNG-> SVG.

BH2017
źródło
1
OK, jak by to wyglądał kod? Próbowałem odwrócić kod, jak powiedziałeś, z mojej wiedzy (jestem kodem noob). To jest kod, którego użyłem`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017
1
Po zrobieniu cd ~/Documents/Chem Structures/jest katalog, w którym znajdują się pliki.
BH2017
1
sudo apt-get install imagemagick, a następnie zapisz ten skrypt #! / bin / bash while [$ # -gt 0]; zrób zdjęcie = $ 1 plik png = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / convert zapisujesz ten skrypt pod
zeitue
1
OK, jak powiedziałem, że jestem noobem, więc musisz wyjaśnić to lepiej, jak wszystko zrozumiałemsudo apt-get install imagemagick
BH2017
2
Należy jednak pamiętać, że istnieje zasadnicza różnica między grafiką wektorową, taką jak SVG, a grafiką pikselową, taką jak PNG. Po utraceniu informacji o wektorze nie ma (bezstratnego) sposobu jej przywrócenia. Tak więc, nawet jeśli „konwertujesz” z PNG na SVG, w zasadzie nie robisz nic innego jak osadzanie grafiki pikselowej (zakodowanej w base64) w pliku grafiki wektorowej SVG. convertKomenda jest jeszcze gorzej: Umieszcza okrąg dla każdego piksela z grafiką pikseli, co prowadzi do bardzo dużych rozmiarów plików. Dlatego spróbowałbym bezpośrednio wyciąć plik SVG.
soulsource

Odpowiedzi:

24

Więc szukasz konwertera / znacznika grafiki rastrowej na wektorową . i oba są w repozytorium Ubuntu. Sam próbowałem wcześniej, co dawało dobre wyniki z domyślnymi opcjami. Jak pamiętam, oba narzędzia nie obsługują formatów skompresowanych jako danych wejściowych, tylko obrazy bitmapowe .potraceautotracepotrace

Zobacz przykłady Potrace

Potrace : narzędzie do przekształcania map bitowych w grafikę wektorową

potrace to narzędzie do śledzenia bitmapy, co oznacza przekształcenie bitmapy w gładki, skalowalny obraz. Dane wejściowe to bitmapa (format PBM, PGM, PPM lub BMP), a domyślnym wyjściem jest enkapsulowany plik PostScript (EPS). Typowym zastosowaniem jest tworzenie plików EPS na podstawie zeskanowanych danych, takich jak logo firmy lub uniwersytetu, odręczne notatki itp. Powstały obraz nie jest „postrzępiony” jak mapa bitowa, ale jest gładki. Następnie można go renderować w dowolnej rozdzielczości.

Dowództwo:

potrace -s inputfile

AutoTrace : konwerter bitmapy na grafikę wektorową

AutoTrace to program do konwersji map bitowych na grafikę wektorową. Celem projektu AutoTrace jest opracowanie darmowej aplikacji podobnej do CorelTrace lub Adobe Streamline. W niektórych aspektach jest już lepiej. Pierwotnie utworzony jako wtyczka do GIMP, AutoTrace jest teraz samodzielnym programem.

Dowództwo:

autotrace -output-format svg inputfile

Referencje:

  • man potrace
  • man autotrace

Aktualizacja

user.dz
źródło
1
Uruchomiłem autotrace -vector svg inputfile(po zmianie pliku wejściowego na fenfluramine.png) i to nie działało, zmieniłem również format wyjściowy na svg, nie działało. Zainstalowałem to.
BH2017
1
Uruchomiłem potrace -s inputfile(z plikiem wejściowym ponownie fenfluramine.png) i dał mi ten błąd:potrace: /home/fusion809/Documents/Chem Structures/Fenfluramine.png: file format not recognized Possible input file formats are: pnm (pbm, pgm, ppm), bmp.
BH2017
1
@BrentonHorne, powinieneś utworzyć obraz PNM lub BMP zamiast PNG. oba narzędzia nie obsługują skompresowanych formatów jako danych wejściowych (PNG, JPEG ...), tylko obrazy bitmapowe (PNM, BMP, ...). Jeśli nie możesz eksportować plików innych niż PNG, spróbuj przekonwertować je na BMP.
user.dz
1
Więc nie odpowiedziałeś na moje pytanie. MarvinSketch może eksportować do BMP, ale jego tło nie jest przezroczyste, dlatego właśnie zasugerowałem format PNG. To nie może zrobić PNM.
BH2017
2
Aha, zadziałało. Dzięki. Myślałem, że ponieważ BMP nie był przejrzysty, żaden wynik też nie byłby.
BH2017
19

Inkscape ma niesamowite narzędzie do automatycznego śledzenia.

  1. Zainstaluj Inkscape za pomocą sudo apt-get install inkscape
  2. Zaimportuj swój obraz
  3. Wybierz swoje zdjęcie
  4. Z paska menu wybierz Path -> Trace Bitmap Item
  5. Dostosuj parametry śledzenia zgodnie z potrzebami

Sprawdź ich samouczek śledzenia, aby uzyskać więcej informacji.

Gdy poczujesz się dobrze z opcjami śledzenia. Możesz to zautomatyzować za pomocą CLI Inkscape .

Hussein El Motayam
źródło
5
+1, dziękuję Z przyjemnością słyszę, że Inkscape ma zintegrowaną potracefunkcjonalność z graficznym interfejsem użytkownika, zgodnie z tym, o czym wspominacie.
user.dz
5
To poprawna odpowiedź, ponieważ potrace nie obsługuje importu .png i łatwo jest wpaść w problemy z przezroczystością itp. Z konwersjami.
brianlmerritt
1
Również Gimp jest w stanie prześledzić kolorowe obrazy, czego brakuje w potrace.
uśmiechnij się
8

Użyj convertpolecenia w terminalu:

Na przykład : convert EXAMPLE.png EXAMPLE.svg

Oto kilka informacji ze strony man:

convert(1) - Linux man page

Name

convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.

Synopsis

convert [input-options] input-file [output-options] output-file

CPH
źródło
3
To osadza obraz rastrowy w SVG zamiast konwertować na obraz wektorowy.
bk138
1
Dziękuję bardzo ... tego właśnie szukałem ...
Dan Ortega
2

Właśnie użyłem gimp teraz z niesamowitymi wynikami. Po raz pierwszy użyłem potrace, ale dostałem tylko obraz w kolorze czarnym z dużą ilością zniekształceń. Być może nie użyłem go poprawnie, ale kiedy próbowałem z Gimpem po prostu eksportować jako „eps” (nazwa_pliku.eps), wszystko było gotowe. Wszystko, co musiałem zrobić, to przejrzeć go, ustawiając rozdzielczość na wartość 300. To wszystko.

Ivan Cervantes
źródło