PNG'yi yazılım kullanarak nasıl SVG'ye dönüştürebilirim?


29

Ben edebilmek istiyorum SVG kimyasal yapılarını kırpmak (bkz tamamen bu soruyu ), o kullanılarak oluşturulan MarvinSketch ve ben bir çözüm düşündüm olabileceğini düşünüyorum; Sonra bu kullanarak kırpmak, büyük bir PNG dosyası oluşturmak için MarvinSketch kullanmak GIMP ve sonra dönüştürmek SVG PNG . Bu nedenle, yüksek kaliteli PNG-> SVG dönüşümü için Ubuntu'da yükleyebileceğim (yazılımları şüpheli olduğum gibi çevrimiçi dönüştürücüler kullanmayı sevmiyorum) herhangi birinin ücretsiz bir yazılım bilip bilmediğini bilmek istiyorum.


1
Tamam, bunun için bir kod neye benzerdi? Dediğim gibi, kodu tersine çevirmeyi denedim, bilgimden (ben bir kod noob). Bu benim kullandığım kod`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017

1
Yaptıktan sonra cd ~/Documents/Chem Structures/hangi dosyaların bulunduğu dizindir.
BH2017

1
sudo apt-get install imagemagick, sonra bu komut dosyasını kaydedin! #! / bin / bash while [$ # -gt 0]; resim yapmak = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / convert "$ picture" png: "$ png_file" ~ / .local / share / nautilus / betikleri içinde vardiya yap ve sonra çalıştır Bu betiği altına
kaydedersiniz

1
Tamam, ben bir noob olduğumu söylediğim gibi, anladığım kadarıyla daha iyi açıklamak zorunda sudo apt-get install imagemagick
kalacaksın

2
Bununla birlikte, SVG gibi vektör grafikleri ve PNG gibi piksel grafikleri arasında temel bir fark olduğunun farkında olmalısınız. Vektör bilgisini kaybettikten sonra geri yüklemenin (kayıpsız) bir yolu yoktur. Bu nedenle, PNG'den SVG'ye "dönüştürme" yapsanız bile, temel olarak bir SVG vektör grafik dosyasına piksel grafiklerini (base64 kodlu) gömmek olarak başka bir şey yapmazsınız. convertKomut daha da kötü: Bu neyi satışlar çok büyük dosya boyutları piksel grafik, her piksel için bir daire yerleştirir. Bu nedenle doğrudan SVG dosyasını kesmeyi denerdim.
soulsource

Yanıtlar:


24

Aradığınız Yani raster için vektör grafikleri dönüştürücü / izleyici . potrace& autotraceikisi de Ubuntu deposunda. Kendim denedim potracevarsayılan seçenekleri ile güzel sonuçlar verdi önce. Hatırladığım kadarıyla her iki araç da sıkıştırılmış formatları girdi olarak desteklemiyor , yalnızca bitmap görüntüleri .

Potrace örneklerine bakın

Potrace : Bitmapleri vektör grafiklerine dönüştürmek için yardımcı program

potrace, bir bitmap'i izlemek için bir yardımcı programdır; bu, bir bitmapi pürüzsüz, ölçeklenebilir bir görüntüye dönüştürmek anlamına gelir. Giriş bir bitmap'tir (PBM, PGM, PPM veya BMP formatı) ve varsayılan çıktı kapsüllenmiş bir PostScript dosyasıdır (EPS). Tipik bir kullanım, şirket veya üniversite logoları, el yazısı notları vb. Gibi taranmış verilerden EPS dosyaları oluşturmaktır. Ortaya çıkan görüntü, bir bitmap gibi "pürüzlü" değildir, ancak düzgündür. Daha sonra herhangi bir çözünürlükte oluşturulabilir.

Komut:

potrace -s inputfile

AutoTrace : vektör grafik dönüştürücüsüne bitmap

AutoTrace, bitmapleri vektör grafiklerine dönüştürmek için bir programdır. AutoTrace projesinin amacı, CorelTrace veya Adobe Streamline'a benzer, ücretsiz olarak kullanılabilen bir uygulamanın geliştirilmesidir. Bazı yönlerden zaten daha iyi. Başlangıçta GIMP için bir eklenti olarak oluşturulmuş olan AutoTrace artık bağımsız bir programdır.

Komut:

autotrace -output-format svg inputfile

Referanslar:

  • man potrace
  • man autotrace

Güncelleştirme


1
Koştum autotrace -vector svg inputfile(fenfluramine.png için girişdosyası değiştirdikten sonra) ve çalışma yoktu, ben de svg çıkış-biçimi değişti eser yoktu. Yükledim.
BH2017

1
Koştum potrace -s inputfile(girişdosyası olmak tekrar fenfluramine.png birlikte) ve bana bu hatayı verdi: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, PNG yerine PNM veya BMP görüntüsü oluşturmalısınız. Her iki araç da sıkıştırılmış formatları giriş (PNG, JPEG ...), yalnızca Bitmap görüntüleri (PNM, BMP, ...) olarak desteklemez. PNG'yi dışa aktaramadıysanız, bunları BMP'ye dönüştürmeyi deneyin.
user.dz

1
O zaman sorumu cevaplamadın. MarvinSketch BMP'ye dışa aktarabilir ancak arka planı saydam değil. Bu yüzden PNG formatını ilk başta önerdim . PNM yapamaz.
BH2017

2
Aha, işe yaradı. Teşekkürler. BMP şeffaf olmadığından hiçbir sonucun olmayacağını düşündüm.
BH2017

19

Inkscape'in harika bir otomatik izleme aracı var.

  1. Kullanarak Inkscape'i yükleyin sudo apt-get install inkscape
  2. Resminizi içe aktarın
  3. Resminizi seçin
  4. Menü çubuğundan, Path -> Trace Bitmap Item
  5. İzleme parametrelerini gereken şekilde ayarlayın

Daha fazla bilgi için izleme eğitimlerini kontrol edin .

Bir kez izleme seçenekleri ile rahat. Inkscape'in CLI'sini kullanarak otomatikleştirebilirsiniz .


5
+1, Teşekkürler. Inkscape'in, potracebahsettiğiniz referansta belirtildiği şekilde GUI'ye entegre bir işlevselliğe sahip olduğunu duyduğuma sevindim.
user.dz

5
Potrace .png import özelliğini desteklemediği için doğru cevap budur ve dönüşümlerle şeffaflık vb. Zorluklarla karşılaşmak kolaydır.
brianlmerritt

1
Ayrıca Gimp, çömleklerin kaçırdığı görünen renkli görüntüleri izleyebiliyor.
sırıtma

8

convertTerminaldeki komutu kullanın :

Örneğin : convert EXAMPLE.png EXAMPLE.svg

İşte manpage'den bazı bilgiler:

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


3
Bu, bir vektör görüntüsüne dönüştürmek yerine SVG'ye bir tarama görüntüsü yerleştirir.
bk138

1
Çok teşekkür ederim ... bu sadece aradığım şeydi ...
Dan Ortega

2

Sadece şu anda şaşırtıcı sonuçlar ile gimp kullandım. İlk önce potrace kullandım ama elimde tek şey siyah renkte çok fazla bozulmaya neden olan bir imgedi. Belki de doğru kullanmadım ama sadece "eps" (file_name.eps) olarak dışa aktarırken gimp ile denediğimde, hepsi bitti. Tek yapmam gereken çözünürlüğü 300 değerinde ayarlayarak gözden geçirmekti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.