PNG görüntüsünü SVG'ye nasıl dönüştürebilirim?
PNG görüntüsünü SVG'ye nasıl dönüştürebilirim?
Yanıtlar:
Resminizi yükleyebileceğiniz ve sonucu görebileceğiniz bir web sitesi var.
Ancak svg resminizi indirmek istiyorsanız, kayıt olmanız gerekir. (Kayıt olursanız, ücretsiz 2 resim alırsınız)
potrace
yok PNG desteklemez girdi dosyası, ancak PNM .
Bu nedenle, önce convert
PNG'den PNM'ye:
convert file.png file.pnm # PNG to PNM
potrace file.pnm -s -o file.svg # PNM to SVG
potrace -s
=> Çıktı dosyası S VGpotrace -o file.svg
=> Çıktıya yaz file.svg
convert 2017.png 2017.pnm
Geçici dosya = 2017.pnm
potrace 2017.pnm -s -o 2017.svg
ykarikos bir senaryo önermektedir png2svg.sh ben düzeldi:
#!/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
Çok sayıda dosyayı dönüştürmek istiyorsanız, aşağıdaki tek satırlık komutu da kullanabilirsiniz:
( 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 )
Vikipedi'de raster-vektör dönüştürücülerin bu iyi karşılaştırmasına da bakın .
potrace
siyah beyaz simgeler için kullandım . Geri bildiriminiz için teşekkürler. Ama üzgünüm renkleri nasıl koruyacağımız hakkında hiçbir fikrim yok ... Ho! Bir fikrim var: Orijinal görüntünüzde birkaç renk varsa (diyelim ki üç benzersiz renk), üç başlangıç resmi oluşturabilirsiniz (her renk için bir tane). Ardından SVG'ye dönüştürün. Ve son olarak, üç SVG içeriğini bir dosyada birleştirin (SVG XML tabanlıdır). Umarım bu yardımcı olabilir ... Şerefe ;-)
convert
ve potrace
birçok platformda kullanılabilir. Linux tabanlı bilgisayarlar kullanıyorum. Bu komutları dün taranmış bir kağıttan SVG üretmek için kullandım. Sonucu görebilirsiniz: cpp-frug.github.io/images/Cpp-President-2017.svg Lütfen hedefiniz hakkında daha fazla bilgi verin. Ne istiyorsun / merak ediyorsun? İhtiyacınız / isteğiniz nedir? Şerefe ;-)
PNG, bir bitmap görüntü stili ve SVG, bitmap'leri destekleyen vektör tabanlı bir grafik tasarımdır, bu yüzden görüntüyü vektörlere dönüştürecek gibi değil, sadece vektör tabanlı bir formatta gömülü bir görüntüdür. Bunu http://www.inkscape.org/ adresini kullanarak ücretsiz yapabilirsiniz. Gömecektir, ancak isterseniz (potrace kullanarak) yollara dönüştürmeye çalışacak olan Canlı İz gibi bir motora da sahiptir. Adobe Illustrator'da (Ticari) canlı izlemeye bakın bir örnek:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
Potrace'e bakmak isteyebilirsiniz .
Kolay
Gördüğünüz gibi, bir sürü diğer zeki .svg şeyler yapmak istiyorsanız, Inkscape'i kullanarak da yapabilirsiniz.
Teknik olmayan bir gözlem: Şahsen bu yöntemi "ücretsiz" web sitesi teklifleri yerine tercih ederim, çünkü çoğu zaman kayıt gerektirmenin yanı sıra, görüntüyü yükleyerek, tüm pratik terimlerle, resmi web sitesi sahibine veriyor.
Adobe Illustrator ile:
Adobe Illustrator uygulamasını açın. "Dosya" yı tıklayın ve .PNG dosyasını programa yüklemek için "Aç" ı seçin. Bir .SVG dosyası olarak kaydetmeden önce görüntüyü gerektiği gibi düzenleyin. "Dosya" yı tıklayın ve "Farklı Kaydet" i seçin. Yeni bir dosya adı oluşturun veya mevcut adı kullanın. Seçilen dosya türünün SVG olduğundan emin olun. Bir dizin seçin ve dosyayı kaydetmek için "Kaydet" i tıklayın.
veya
çevrimiçi dönüştürücü http://image.online-convert.com/convert-to-svg
AI'yı tercih ederim çünkü gerekli değişiklikleri yapabilirsiniz
iyi şanslar
Benim için sürpriz, ortaya çıkan potrace , sadece siyah ve beyazı işleyebilir. Bu, durumunuzu kullanmanız için iyi olabilir, ancak bazıları renk izleme eksikliğinin sorunlu olduğunu düşünebilir.
Şahsen, Vector Magic ile tatmin edici sonuçlar elde ettim
Yine de mükemmel değil.
Kullananlara bir not Potrace ve imagemagick dönüştürerek, PNG şeffaflık ile görüntüleri PPM çok iyi işe görünmüyor. İşte bunu ele almak için -flatten
bayrağını kullanan bir örnek convert
:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm
Bir başka ilginç olgu da giriş biçimi olarak PPM (256 * 3 renk, yani RGB), PGM (256 renk, yani gri tonlama) veya PBM (2 renk, yani yalnızca beyaz veya siyah) kullanabilmenizdir. Sınırlı gözlemlerimden, kenar yumuşatılmış görüntülerde PPM ve PGM ( görebildiğim kadarıyla aynı SVG'ler üreten ) renkli alanı küçültür ve PBM renkli alanı genişletir (sadece biraz da olsa). Muhtemelen bu bir pixel > (256 / 2)
test ile test arasındaki farktır pixel > 0
. Örneğin, dosya uzantısını değiştirerek bu üç dosya arasında geçiş yapabilirsiniz. aşağıdaki PBM kullanın :
sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
Ayrıca http://image.online-convert.com/convert-to-svg adresini de deneyebilirsiniz.
Her zaman ihtiyaçlarım için kullanıyorum.
Bu soruyu ve cevapları aynı şeyi yapmaya çalışırken buldum! Bahsedilen diğer araçlardan bazılarını kullanmak istemedim. (E-postamı vermek istemiyorum ve ödemek istemiyorum). Inkscape'in (v0.91) oldukça iyi bir iş yapabileceğini buldum. Bu eğitim hızlı ve anlaşılması kolaydır.
Inkskape ve Shift + Alt + B'de bitmap'inizi seçmek kadar basit .
Neden .png'den .svg'ye dönüştürmek istediğinize bağlı olarak , sorundan geçmeniz gerekmeyebilir. .Png (raster) 'dan .svg (vector)' ya dönüştürmek, mevcut araçlara çok aşina değilseniz veya ticari olarak bir grafik tasarımcı değilseniz.
Birisi size büyük, yüksek çözünürlüklü bir dosya (ör. 1024x1024) gönderirse, GIMP'de istediğiniz herhangi bir boyuta yeniden boyutlandırabilirsiniz. Genellikle, çözünürlük (inç başına düşen piksel sayısı) çok düşükse görüntüyü yeniden boyutlandırmada sorun yaşarsınız. Bunu GIMP'de düzeltmek için şunları yapabilirsiniz:
File -> Open
: .png dosyanızImage -> Image Properties
: özünürlüğü ve renk uzayını kontrol edin. 300 ppi civarında bir çözünürlük istiyorsunuz. Çoğu durumda renk uzayının RGB olmasını istersiniz.Image -> Mode
: RGB olarak ayarlandıImage -> Scale Image
: boyutu yalnız bırakın, Y çözünürlüğünü 300 veya daha yüksek bir değere ayarlayın. Ölçeği Vur.Image -> Scale Image
: çözünürlük şimdi 300 olmalıdır ve artık görüntüyü hemen hemen istediğiniz boyuta göre yeniden boyutlandırabilirsiniz.Bir .svg dosyasını yeniden boyutlandırmak kadar kolay değil, ancak zaten büyük, yüksek çözünürlüklü bir görüntünüz varsa, bir .png dosyasını .svg'ye dönüştürmeye çalışmaktan kesinlikle daha kolay ve hızlı.
Bunu yapmak için yazılım yazmak istediğinizi varsayıyorum. Saf bir şekilde yapmak için sadece çizgiler bulabilir ve vektörleri ayarlayabilirsiniz. Bunu akıllıca yapmak için, şekillere çizim (şekil uydurma) takmaya çalışırsınız. Ayrıca, bit eşlemli bölgeleri (utançlarla modelleme yapamayacağınız veya doku uygulayamadığınız bölgeler) tespit etmeye çalışmalısınız. Bu rotaya gitmeyi tavsiye etmem, çünkü biraz zaman alacak ve biraz grafik ve bilgisayar görme bilgisi gerektirecektir. Ancak, çıktı orijinal çıktınızdan çok daha iyi ve ölçeklendirilir.
http://online-converting.com/image/convert-to-svg/ svg'ye dönüştürmek için iyi çalıştı
potrace
, komut satırında olduğu gibi aynı sorun - web sitesinin dahili olarak ne kullandığını merak ediyor ...
Bu araç şu anda çok iyi çalışıyor.
Bazı Linux sistemindeyseniz, imagemagick mükemmeldir. yani
convert somefile.png somefile.svg
Bu, farklı formatlardaki yığınlarla çalışır.
Videolar ve ses kullanımı (ffmpeg) gibi diğer medya için açıkça svg png belirttiğiniz biliyorum; Hala medyayla ilgili.
ffmpeg -i somefile.mp3 somefile.ogg
Sadece bir sürü dosya üzerinden gitmek istiyorsanız için bir ipucu; basit kabuk hileleri kullanarak bir döngü ..
for f in *.jpg; do convert $f ${f%jpg}png; done
Bu jpg'yi kaldırır ve istediğinizi dönüştürmenizi söyleyen png ekler.