Apakah ada program command-line yang dapat mengkonversi SVG ke PNG, yang berjalan di Mac OS X?
Sunting : Dylan B punya jawaban yang bagus dengan ImageMagick. Untuk referensi, untuk menginstal ImageMagick dengan dukungan SVG di Mac OS X menggunakan MacPorts, lakukan
port install imagemagick +rsvg
macos
command-line
png
svg
Lorin Hochstein
sumber
sumber
pip3 install cairosvg
Jawaban:
Atau tanpa menginstal apa pun:
Ini akan menghasilkan picture.svg.png yang lebarnya 1000 piksel.
Saya telah mengujinya hanya pada OS X 10.6.3.
sumber
qlmanage -t
berikan thumbnail yang digunakan oleh Quick Look (di Finder, dll). Ide pintar Sayangnya, thumbnail ini bisa buggy, terutama ketika ada teks yang terlibat.rsvg-convert
dalam jawaban @ ahti bekerja sebelumnya untuk saya.-s
opsi tidak berfungsi untuk saya. Masih memotongnya menjadi persegi. Sangat membuat frustrasi!Saya menemukan bahwa bagi saya alat terbaik untuk pekerjaan itu adalah
rsvg-convert
.Ini dapat ditemukan dalam minuman dengan
brew install librsvg
dan digunakan seperti ini:(Contoh ini membuat png tinggi 32px. Lebar ditentukan secara otomatis.
sumber
convert
mengeluarkan kesalahan dan gagal menyamarkan SVG yang rumitqlmanage
jawaban bekerja untuk mereka semua tetapi menempatkan latar belakang putih, yang saya tidak mau.rsvg-convert
, .png yang dihasilkan memiliki dimensi yang tepat, tetapi gambar keluar semua hitam, bukan warna aslinya. Denganqlmanage
gambar dipotong menjadi persegi. Masih mencari solusi :-(ImageMagick adalah editor gambar command-line yang sangat fleksibel, yang mungkin akan menyaingi Photoshop jika itu, Anda tahu, GUI. Tapi siapa yang butuh itu? : P
Sesuatu seperti yang berikut ini akan mengonversi .svg ke .png, setelah instalasi:
.Svg asli tidak terhapus.
sumber
display
.Inkscape dengan Commandline-Interface-nya menghasilkan hasil terbaik bagi saya:
Untungnya, Anda dapat menentukan ukuran piksel yang tepat dari gambar yang dihasilkan, tanpa harus mengacaukan kepadatan.
sumber
inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png
OK, saya menemukan cara sederhana untuk melakukannya di Mac jika Anda memiliki Google Chrome.
Dalam satu kalimat, itu untuk melihat
svg
gambar di halaman web (harus dalamhtml
file), klik kanan pada gambar dan pilih "Salin Gambar" dan tempel ke aplikasi Pratinjau.Langkah:
svg
file di hard drive Anda, katakan,somefile.svg
tmp.html
yang berisi baris ini:<img src="somefile.svg">
"File -> New from Clipboard"
File -> Save
file dan Anda punyapng
file. (atau jenis file lainnya).Ini diuji pada Chrome saat ini (versi 48.0) di Mac OS X El Capitan.
Pembaruan : Saya tidak yakin apakah ini disebabkan oleh pembatasan yang diberlakukan oleh Google Chrome. Saya hanya mencoba file SVG menggunakan Chrome 58.0, dan saya mendapatkan gambar kecil dari metode di atas. Jika Anda melihat kasing ini juga, Anda juga dapat menggunakan
dan Anda akan memiliki gambar di layar yang cukup baik untuk Anda lakukan tangkapan layar - menggunakan CmdShift4atau CmdShift3di Mac, misalnya. Pastikan Anda mengubah ukuran jendela Chrome hingga maksimum yang diizinkan di layar.
sumber
Jika Anda ingin melakukan banyak sekaligus, Anda dapat:
mogrify -format png *.svg
Ada opsi untuk mengubah ukuran dll dengan cepat, juga ..
sumber
mogrify
juga setara dengan ImageMagick.Coba Batik Apache .
Ini juga mendukung konversi batch dan memiliki banyak opsi bermanfaat lainnya.
sumber
Saya telah membuat svgexport menggunakan node / npm untuk ini, ini adalah cross-platform dan dapat sesederhana:
sumber
Anda juga dapat menggunakan phantomjs untuk membuat svg. Keuntungannya adalah ia menjadikannya seperti browser karena pada dasarnya WebKit tanpa kepala.
Setelah Anda mengunduhnya, Anda memerlukan phantomjs (binary) dan file rasterizer.js dari folder contoh.
sumber
brew cask install phantomjs
. Dalam instal saya, folder contoh berada di jalur/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/
.Inilah yang saya gunakan:
brew install imagemagick --with-librsvg
Kemudian jalankan perintah berikut:
find . -type f -name "*.svg" -exec bash -c 'convert $0 $0.png' {} \; rename 's/svg\.png/png/' *
Semoga ini bisa membantu.
sumber
Saya menggunakan perintah ini di linux saya. Ini seharusnya bekerja untuk Anda juga.
Saya belajar bahwa tanpa argumen "-density", bitmap akan sangat pixelized. Ubah nilai -densitas agar sesuai dengan kebutuhan Anda.
sumber
Perintah konversi ImageMagick, menggunakan beberapa parameter lain, adalah apa yang dilakukan untuk saya. Inilah solusi batch script Bash saya yang membagi tugas di beberapa proses untuk memanfaatkan semua inti Anda! Ubah sesuai kebutuhan.
batchConvertToSVG.sh (menganggap sejumlah proses sebagai argumen):
convertToSvgHelper.sh:
sumber
Seperti yang dikomentari sebelumnya, ImageMagick berhasil. Saya hanya ingin menambahkan titik untuk GraphicsMagick , garpu tua dari ImageMagick yang memiliki beberapa perbaikan (dan jauh lebih sedikit ketergantungan ketika diinstal melalui fink).
sumber
Anda dapat melakukan konversi batch pada seluruh folder file SVG ke PNG. Saya menggunakan antarmuka baris perintah Inkscape untuk menghasilkan file png dengan lebar 80px.
png akan disimpan dengan nama asli * .png
sumber
Namun metode lain tanpa menginstal apa pun. Namun tidak di baris perintah.
<svg>
tag, pilih "Capture Screenshot". (Perhatikan bahwa Anda tidak boleh memperbesar gambar.)PS Untuk memperbesar gambar .svg jika terlalu kecil, coba buka file .svg di editor teks dan tambahkan
0
ke setiap angka kecuali dalam atribut-meta. Ini dapat dilakukan oleh substitusi global regex dari(\d+)
ke$10
, di mana$1
placeholder untuk referensi kembali, misalnya.sumber
wkhtmltoimage (dari project wkhtmltopdf) melakukan konversi dengan baik:
ImageMagick
merender karakter CJK sebagai kosong di mac saya.sumber