Dòng lệnh SVG và trình xem tập tin hình ảnh trong Linux?


36

Có bất kỳ trình xem biểu đồ dòng lệnh (có khả năng đường ống) nào cho các tệp hình ảnh SVG và JPG / PNG không?

Đặc biệt, các tệp biểu đồ / hình ảnh là đường ống thông qua đầu ra, thay vì các tệp đơn giản, do đó phải có tùy chọn để chỉ định loại / phần mở rộng của tệp.

Mặc dù gv hoạt động cho PS / PDF được tạo bởi các chương trình dấu chấm, tôi muốn biết liệu có các lựa chọn thay thế cho các tệp hình ảnh SVG, v.v.


1
chỉ để làm rõ: điểm chính của bạn không phải là hiển thị .svg, .jpg và .png trên bàn điều khiển ("dòng lệnh"), mà là để chuyển các loại mime như vậy sang một chương trình đồ họa thông thường?
akira

1
Có, tôi muốn hiển thị trong X. Giống như gv. Nhưng gv không hỗ trợ SVG, v.v.
Xiè Jìléi

gwenviewkhá nhanh, tự hỏi nếu đáp ứng nhu cầu của bạn?
Sức mạnh Bảo Bình

Câu trả lời:


37

Bạn đã thử displaychương trình đi kèm với ImageMagick chưa?


3
AFAIK, Imagemagick một mình không thể hiển thị các tệp SVG, nó cần một công cụ chuyển đổi SVG thành bitmap. Trên Debian, sudo aptitude install librsvg2-binlà cần thiết nếu "rsvg-convert" chưa được cài đặt. Gói này cũng chứa một trình xem rsvg-view-3có zoom tốt hơn display.
Mytskine

2
@Mytskine: Theo Tài liệu ImageMagick , nó sẽ sử dụng trình kết xuất SVG nội bộ của riêng mình nếu Inkscape hoặc RSVG không khả dụng.
Tạm dừng cho đến khi có thông báo mới.

1
Trên hệ thống của tôi: inkscapetải chậm, inkviewnhanh nhưng dường như không thể thay đổi chế độ xem? displayhoạt động tuyệt vời đối với tôi :-)
Hugh Perkins

Tôi đã không quản lý để có được công việc inkview từ đầu vào đường ống, nhưng hiển thị thực hiện chính xác những gì tôi muốn :-) Tôi sử dụng nó như go run my_svg_generator.go | displaythx.
JepZ

1
CẢNH BÁO!!!! không sử dụng màn hình nếu bạn đang vội !!! đối với tệp svg 500kb (phân tích các sự cố khởi động systemd), phải mất 20 phút trước khi tôi có thể sử dụng lại máy của mình, vì nó đã sử dụng 4GB (yêu cầu 7GB virt.mem) trong 6GB RAM đã bị đầy của tôi và bị tráo đổi rất nhiều (5GB đã chuyển sang chỉ vì hiển thị) :(, không chắc chắn về hiệu suất của bất kỳ tùy chọn nào khác để trực quan hóa Svg tho., gwenviewkhá nhanh btw
Aquarius Power

12

Inkscape đã đi kèm với trình xem riêng của nó:inkview

Nó thiếu các tính năng, nó có thể hơi chậm, nhưng nó hoạt động (và có thể kết xuất SVG chính xác hơn so với ImageMagick display).


Chỉ muốn lưu ý rằng tôi đã thử inkview(tôi tin từ 0,48 inkscape) trên Ubuntu 10.04.3, đã khởi động nhanh đáng kinh ngạc! (EDIT: nhưng chỉ cho nhỏ .svgs; try inkview /usr/share/inkscape/examples/*.svg*như trang người đàn ông cho biết, có một số sức nặng có quá ... Tuy nhiên, giao diện khởi động nhanh.) Cảm ơn bạn lưu ý rằng, @ DenilsonSá - chúc mừng!
sdaau

1
Đối với các SVG thực sự lớn, inkview dường như bị hỏng.
CMCDragonkai

10

Bạn có ý nghĩa gì với 'ống có thể'?
fehlà người xem dòng lệnh rất tốt với hàng tấn tùy chọn.


1
Ý tôi là nó chấp nhận đầu vào từ stdin và đoán loại MIME nếu có thể. Hoặc bằng cách chỉ định phần mở rộng một cách rõ ràng nếu nó không thể đoán được loại tệp theo phương pháp heuristur.
Xiè Jìléi

11
fehdường như không hỗ trợ SVG chút nào; Tôi nhận được " feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format" ... Chúc mừng!
sdaau

1
Thêm vài ghi chú: đầu tiên, feh trang chủ , ví dụảnh chụp màn hình ; second ( ubfox 10.04.3 ): khởi động rất nhanh; có gói Debian / Ubuntu; có một chút tương tác chuột kỳ lạ (xem feh --helpở cuối); Tôi có thể tải một thư mục của pngs, và nhấn hoặc (phím mũi tên), nó tải rất nhanh trông giống như (hoặc tốt hơn) một hoạt hình .gif :)... Chúc mừng!
sdaau

1
@sdaau, feh thực sự không hỗ trợ SVG, vì vậy đây không phải là câu trả lời hữu ích cho OP.
Dylan Thurston

8

Tôi thường làm việc với SVG dưới dạng tệp văn bản, vì vậy tôi muốn người xem tự động làm mới màn hình ngay khi tệp được lưu (và nội dung của nó đã thay đổi) - tôi nghĩ điều này có thể áp dụng cho các tình huống 'có thể điều chỉnh được' ống).

Lưu ý rằng, đối với các ứng dụng Gnome mặc định:

  • evincehiện đang hoạt động như thế này cho các tệp PDF, nhưng dường như nó không thể đọc được SVG (đối với tôi, nó tạo ra " Unable to open document - Error opening file: Permission denied" khi tôi cố tải các tệp SVG)
  • eog(Eye Of Gnome) - phiên bản mới nhất - cũng có thể phát hiện nếu một tập tin thay đổi về điều này, và sau đó cung cấp nút 'Tải lại'; nhưng rõ ràng, bạn vẫn phải nhấp vào 'Tải lại' mỗi lần (Tôi không thể thấy cách nào để tự động tải lại luôn khi thay đổi tệp eog, như evinceứng xử với các tệp PDF) - và, ít nhất là trên Ubuntu 10.04, eoghỗ trợ SVG của tôi bị hỏng một chút (phóng to kết quả với các đường mờ)
  • ImageMagick displaykhông chỉ không tự động làm mới khi tệp thay đổi trên đĩa - và ngay cả khi bạn nhấn 'refresh' display, bạn vẫn không nhận được phiên bản mới nhất của tệp (nghĩa là bạn phải khởi động lại displayđể hiển thị phiên bản mới nhất :() .

Dưới đây là một số ghi chú tôi tìm thấy cho đến nay:

  • Squiggle, Trình duyệt SVG Trình duyệt SVG là một phần của bộ công cụ Batik. - Tải xuống Batik batik-1.7.zip; giải nén nó; chạy java -jar batik-squiggle.jarvà nó ở đó; không tự động làm mới hình ảnh nếu tập tin svg thay đổi trên đĩa
  • Trình xem ảnh SVG? - Khuyến nghị của Diễn đàn Ubuntu :
    • Trong bài số 8 - " Tôi đã viết một tập lệnh python nhỏ ... Bạn chỉ cần chạy nó dưới dạng: svg_compare.py và nó sẽ mở ra một Svg và hiển thị nó bằng thư viện svg và sử dụng thư viện raster của gtk. Bạn có thể phóng to bằng chuột. .. "
    • xsvg(từ http://cairographics.org ) - Tôi đã cài đặt libsvg1_0.1.4-1_i386.deb , libsvg-cairo1_0.1.6-5_i386.debxsvg_0.2.1-3_i386.deb theo thứ tự đó; những phiên bản đó là từ năm 2005, và vì vậy xsvgcực kỳ đơn giản - không phóng to, không có gì .. Và không cần phải nói, nó không phản ứng với các thay đổi tệp đã lưu tự động ...
  • thông qua đó, tôi tìm thấy rsvg-view, mà tôi nghĩ là một phần của sudo apt-get install librsvg2-bin. Nó nhỏ, đẹp, hỗ trợ stdin - tuy nhiên, cũng rsvg-viewkhông thể phát hiện thay đổi tệp và tự động làm mới trên đó ..

Yup - tốt, tôi hy vọng điều này sẽ giúp ...
Chúc mừng!

 

EDIT (ngày 24 tháng 12 năm 10): tốt, đây cũng là đóng góp của tôi: svg numfreshview.py - về cơ bản là một bản sửa lại svg_compare.pyđược đề cập ở trên, chỉ đơn giản hiển thị tệp SVG, và tải lại tệp và làm mới màn hình nếu tệp đã được sửa đổi . ( nó không thực sự hoạt động với stdin - nhưng có những đoạn script khác trong repo của tôi mà phân tích stdin trong python, có lẽ chúng sẽ giúp ích ).

EDIT2 (20 tháng 5 '12): Ngoài ra, đã đưa ra một ví dụ về kịch bản Perl-Tk, rất thô sơ ( không tương tác chuột, không có gì ), nhưng sử dụng API ImageMagick Perl và do đó có thể hiển thị SVG (dưới dạng bitmap trên khung vẽ ), vui lòng xem câu trả lời # 10670039 - API ImageMagick cho giao diện ứng dụng GUI dòng lệnh thành display- Stack Overflow .


Thỉnh thoảng, tôi đã vá những Reloadthứ eogNGÀY NAY! Tôi ghét nút đó, quá!
Xiè Jìléi

Và, nói cho bạn một sự thật khác, displayxuất phát từ ImageMagickquy mô SVG không tốt, bởi vì nó đã phóng to biểu đồ trước khi hiển thị nó. Và thậm chí tệ hơn, displayrsvgkhông hoạt động với một số tệp SVG của tôi. Cho đến bây giờ, chỉ có FireFox kết xuất chính xác. FireFox đánh bại tất cả.
Xiè Jìléi

Xin chào @ 谢, cảm ơn các ý kiến! Chà - Tôi vừa chỉnh sửa bài đăng của mình và thêm một liên kết đến một kịch bản python mà tôi vừa ghép lại - hãy thử nó, có thể nó giúp ... Chúc mừng! Ngoài ra +1 trên "ghét nút đó" :) [mặc dù, tôi phải thừa nhận: Tôi luôn muốn có một nút để làm gì đó bằng tay - hơn là không có nó :) ... Tôi chỉ thích tự động làm mới phụ :)]
sdaau

4

Tôi khuyến nghị thứ hai của Dennis Williamson về ImageMagick display.

Ngoài ra, đôi khi bạn có thể sử dụng các đường dẫn có tên để truyền dữ liệu tới các chương trình đọc từ tệp.

Thí dụ:

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

Mặc dù vậy, sẽ không làm việc với các chương trình dự kiến ​​có thể tìm kiếm ngược trong tệp.


Cách sử dụng ống có tên này rất sáng tạo, cảm ơn. Sau khi thử, tôi thấy phải mất một lúc để khởi động, đó là một trình soạn thảo đầy đủ chức năng chứ không phải là một trình xem đơn giản.
Xiè Jìléi

3

Có vẻ như trình xem Geeqie xử lý đồ họa svg và nó tự động tải các hình ảnh được cập nhật. Tôi không biết liệu nó có thể lấy hình ảnh từ stdin không. Tôi hy vọng nó sẽ giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.