Saya menggunakan Linux dan saya ingin mengambil file SVG dan memanggangnya menjadi file PNG pada resolusi tertentu (penskalaan). Apakah ada cara untuk melakukan ini dengan cepat dan efektif dari baris perintah?
Saya mencari sesuatu seperti ini:
svg2png --width 128 --height 128 input.svg output.png
Apakah ada alat untuk ini?
Jawaban:
Gunakan konversi ImageMagick :
Jika ukuran kanvas input kurang dari ukuran yang diberikan, ini akan meningkatkan skala output tanpa sampel ulang. Untuk mendapatkan hasil kualitas yang lebih tinggi, tambahkan
-density
parameter:ImageMagick raster gambar vektor ke resolusi kanvas mereka ke kepadatan standar 72 dpi.
Untuk meningkatkan skala dengan pengambilan sampel yang tepat, Anda dapat menentukan nilai lebih tinggi, seperti 500 dpi dalam sampel di atas.
Menggunakan kepadatan raster yang terlalu tinggi dapat menjadi masalah kinerja dengan kanvas ukuran besar. Kepadatan raster terendah dan ideal adalah:
raster_density = raster_size / original_size * original_density
Kepadatan raster yang ideal ini akan menampilkan gambar langsung ke ukuran yang diharapkan (tidak
-resize
diperlukan). Tetapi karena perkiraan angka float dapat terjadi, nilai yang sedikit lebih tinggi dan perubahan ukuran direkomendasikan untuk hasil pixel-perfect.Anda bisa mendapatkan ukuran dan kerapatan asli menggunakan ImageMagick's escape :
Perhatikan bahwa ImageMagick tidak menangani spesifikasi SVG yang lengkap. Jika mengalami masalah dengan bentuk yang diberikan secara salah, lihat utas ini tentang memilih ImageMagick SVG renderer .
sumber
rsvg
dari jawaban di bawah ini sendiri, tetapi sudah saatnya saya mulai menggunakan ImageMagick.convert: unable to read font
(null) '@ error / annotate.c / RenderFreetype / 1153.` yang saya selesaikanbrew install gs
, tetapi bahkan ketika konversi berjalan dengan bersih, gambar yang dihasilkan adalah sampah.-background transparent
, jika tidak dikonversi menggunakan latar belakang putih.inkscape in.svg --export-png=out.png
(contoh dari superuser.com/a/493028/316154 )Keduanya
rsvg
daninkscape
dapat:Dan:
sumber