Baris perintah SVG dan penampil file gambar di Linux?

36

Apakah ada baris perintah (dapat pipa) penampil grafik untuk file gambar SVG dan JPG / PNG?

Terutama itu, file grafik / gambar adalah output melalui jalur pipa, daripada file biasa, sehingga harus ada opsi untuk menentukan jenis file / ekstensi.

Meskipun gv bekerja untuk PS / PDF yang dihasilkan oleh program dot, saya ingin tahu apakah ada alternatif untuk mendukung file gambar SVG dll.

Xiè Jìléi
sumber
1
hanya untuk memperjelas: titik utama Anda bukan untuk menampilkan .svg, .jpg, dan .png di konsol ("command line"), melainkan untuk menyalurkan tipe mime seperti itu ke program grafis normal?
akira
1
Ya saya ingin ditampilkan dalam X. Seperti halnya gv. Tetapi gv tidak mendukung SVG, dll.
Xiè Jìléi
gwenviewcukup cepat, bertanya-tanya apakah memenuhi kebutuhan Anda?
Aquarius Power

Jawaban:

37

Sudahkah Anda mencoba displayprogram yang dilengkapi dengan ImageMagick ?

Dijeda sampai pemberitahuan lebih lanjut.
sumber
3
AFAIK, Imagemagick sendiri tidak dapat menampilkan file SVG, perlu alat yang mengubah SVG menjadi bitmap. Pada Debian, sudo aptitude install librsvg2-bindiperlukan jika "rsvg-convert" belum diinstal. Paket ini juga berisi penampil rsvg-view-3yang memiliki zoom lebih baik daripada display.
Mytskine
2
@Mytskine: Menurut DocumentMagick Documentation , ia akan menggunakan renderer SVG internal sendiri jika Inkscape atau RSVG tidak tersedia.
Dijeda sampai pemberitahuan lebih lanjut.
1
Di sistem saya: inkscapelambat memuat, inkviewcepat tapi sepertinya tidak bisa mengubah tampilan? displaybekerja sangat baik untuk saya :-)
Hugh Perkins
Saya tidak berhasil mendapatkan pekerjaan inkview dari input pipa, tetapi layar tetap melakukan apa yang saya inginkan :-) Saya menggunakannya seperti go run my_svg_generator.go | displaythx.
JepZ
1
PERINGATAN!!!! jangan gunakan tampilan jika Anda sedang terburu-buru !!! untuk file 500kb svg (menganalisis masalah boot sistemd), butuh 20 menit sebelum saya bisa menggunakan mesin saya lagi, karena menggunakan 4GB (diminta 7GB virt.mem) dari 6GB RAM saya sudah membengkak dan menukar banyak sekali (5GB) pergi untuk menukar hanya karena tampilan) :(, tidak yakin tentang kinerja opsi lain untuk memvisualisasikan svg tho., gwenviewbtw cukup cepat
Aquarius Power
12

Inkscape sudah dilengkapi dengan penampilnya sendiri:inkview

Ini tidak memiliki fitur, mungkin agak lambat, tetapi bekerja (dan mungkin membuat SVG lebih akurat daripada ImageMagick display).

Denilson Sa Maia
sumber
Hanya ingin mencatat bahwa saya mencoba inkview(saya percaya dari 0.48 inkscape) di Ubuntu 10.04.3, dimulai dengan sangat cepat! (EDIT: tapi hanya untuk kecil .svgs; dicoba inkview /usr/share/inkscape/examples/*.svg*sebagai halaman man mengatakan, ada beberapa tukang sana juga ... Namun, GUI startup adalah cepat.) Terima kasih untuk catatan, @ DenilsonSá - cheers!
sdaau
1
Untuk SVG yang sangat besar, tampilan tinta tampaknya pecah.
CMCDragonkai
10

Apa yang Anda maksud dengan 'pipa-mampu'?
fehadalah penampil commandline yang sangat baik dengan banyak pilihan.

Ivan Petrushev
sumber
1
Maksud saya menerima input dari stdin, dan tebak jenis MIME jika memungkinkan. Atau dengan menentukan ekstensi secara eksplisit jika tidak dapat menebak jenis file heuristically.
Xiè Jìléi
11
fehsama sekali tidak mendukung SVG; Saya mendapat " feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format" ... Ceria!
sdaau
1
Lebih sedikit catatan: pertama, feh beranda , contoh , dan tangkapan layar ; kedua ( ubuntu 10.04.3 ): dimulai sangat cepat; memiliki paket Debian / Ubuntu; memiliki interaksi mouse agak aneh (lihat feh --helpdi akhir); Saya dapat memuat direktori pngs, dan terus atau menekan (tombol panah), itu memuat begitu cepat sehingga terlihat seperti (atau lebih baik daripada) .gif animasi :)... Ceria!
sdaau
1
@sdaau, feh memang tidak mendukung SVG, jadi bukan jawaban yang berguna untuk OP.
Dylan Thurston
8

Saya biasanya bekerja dengan SVG sebagai file teks, jadi saya ingin pemirsa untuk me-refresh layar secara otomatis segera setelah file disimpan (dan isinya berubah) - ini harus berlaku untuk situasi 'pipabel', saya pikir (yaitu dengan nama pipa).

Perhatikan bahwa, untuk aplikasi Gnome default:

  • evincesaat ini berfungsi seperti ini untuk PDF, tetapi tampaknya tidak dapat membaca SVG (bagi saya ini menghasilkan " Unable to open document - Error opening file: Permission denied" ketika saya mencoba memuat file SVG)
  • eog(Eye Of Gnome) - versi terbaru - juga dapat mendeteksi jika file diubah, dan kemudian menawarkan tombol 'Muat Ulang'; tetapi tampaknya, Anda masih harus mengklik 'Reload' setiap kali (saya tidak dapat melihat cara untuk menyebabkan reload otomatis selalu pada perubahan file eog, seperti evinceberperilaku dengan PDF) - dan juga, setidaknya pada Ubuntu 10,04 saya, eogdukungan SVG agak rusak (memperbesar hasil dengan garis buram)
  • ImageMagick displaytidak hanya tidak secara otomatis me-refresh ketika file berubah pada disk - dan bahkan ketika Anda menekan 'refresh' display, Anda masih tidak mendapatkan versi terbaru dari file (artinya, Anda harus me display- restart untuk menampilkan versi terbaru :() .

Berikut adalah beberapa catatan yang saya temukan sejauh ini:

  • Squiggle, Browser SVG Browser SVG yang merupakan bagian dari toolkit Batik. - Unduh Batik batik-1.7.zip; membongkar itu; lari java -jar batik-squiggle.jardan itu dia; tidak menyegarkan gambar secara otomatis jika file svg berubah pada disk
  • Penampil Gambar SVG? - Rekomendasi Forum Ubuntu :
    • Dalam posting # 8 - " Saya menulis skrip python kecil ... Anda cukup menjalankannya sebagai: svg_compare.py dan membuka svg dan menampilkannya menggunakan perpustakaan svg dan menggunakan perpustakaan raster gtk. Anda dapat memperbesar dengan mouse. .. "
    • xsvg(dari http://cairographics.org ) - Saya memasang libsvg1_0.1.4-1_i386.deb , libsvg-cairo1_0.1.6-5_i386.deb dan xsvg_0.2.1-3-3i386.deb dalam urutan itu; versi-versi tersebut berasal dari tahun 2005, dan xsvgsangat sederhana - tanpa zoom, tidak ada .. Dan tidak perlu dikatakan, itu tidak bereaksi terhadap perubahan file yang disimpan secara otomatis ...
  • melalui itu, saya menemukan rsvg-view, yang saya pikir adalah bagian dari sudo apt-get install librsvg2-bin. Kecil, bagus, mendukung stdin - namun, juga rsvg-viewtidak dapat mendeteksi perubahan file, dan secara otomatis me-refreshnya ..

Yup - well, saya harap ini membantu ...
Ceria!

 

EDIT (24 Des '10): well, ini juga kontribusi saya: svg_refreshview.py - yang pada dasarnya adalah pengerjaan ulang yang svg_compare.pydisebutkan di atas, yang hanya menunjukkan file SVG, dan memuat kembali file dan menyegarkan tampilan jika file telah dimodifikasi . ( Ini tidak dapat bekerja dengan stdin - tetapi ada skrip lain di repo saya yang mengurai stdin dengan python, mungkin mereka akan membantu ).

EDIT2 (20 Mei '12): Juga, muncul dengan contoh skrip Perl-Tk, yang sangat kasar ( tidak ada interaksi mouse, tidak ada apa-apa ), tetapi menggunakan ImageMagick Perl API, dan juga dapat membuat SVG (sebagai bitmap pada kanvas ), silakan lihat jawaban # 10670039 - ImageMagick API untuk antarmuka aplikasi GUI baris perintah ke display- Stack Overflow .

sdaau
sumber
Ini sangat kadang-kadang, saya telah menambal Reloadbarang - barang eogJUST YESTERDAY! Aku benci tombol itu juga!
Xiè Jìléi
Dan, katakan kebenaran lain, displayberasal dari ImageMagicktidak skala SVG dengan baik, karena itu meraster grafik sebelum menampilkannya. Dan lebih buruk lagi, displaydan rsvgtidak berfungsi dengan beberapa file SVG saya. Sampai sekarang, hanya FireFox yang merender dengan benar. FireFox mengalahkan semua.
Xiè Jìléi
Hai @ 谢 继 雷, terima kasih atas komentarnya! Yah - Saya baru saja mengedit posting saya dan menambahkan tautan ke skrip python yang baru saja saya kumpulkan - coba saja, mungkin itu membantu ... Ceria! Juga memberi +1 pada "tombol benci itu" :) [walaupun, saya harus akui: Saya selalu lebih suka memiliki tombol untuk melakukan sesuatu secara manual - daripada tidak memilikinya :) ... Saya hanya ingin menyegarkan otomatis ekstra :)]
sdaau
4

Saya kedua rekomendasi Dennis Williamson dari ImageMagick display.

Juga, Anda kadang-kadang dapat menggunakan pipa bernama untuk menyalurkan data ke program yang membaca dari file.

Contoh:

mkfifo /tmp/foo.svg
cat /usr/share/inkscape/clipart/tux.svg > /tmp/foo.svg & inkscape /tmp/foo.svg
rm -f /tmp/foo.svg

Tidak akan bekerja dengan program-program yang berharap dapat mencari mundur dalam file.

Jukka Matilainen
sumber
Penggunaan pipa bernama ini sangat kreatif, terima kasih. Setelah mencoba, saya merasa perlu beberapa saat untuk memulai, ini adalah editor fungsional penuh daripada penampil sederhana.
Xiè Jìléi
3

Tampaknya penampil Geeqie menangani grafik svg dan secara otomatis memuat gambar yang diperbarui. Saya tidak tahu apakah ini dapat mengambil gambar dari stdin. Saya harap ini membantu.

sinar
sumber