บรรทัดคำสั่ง SVG และโปรแกรมดูไฟล์ภาพใน Linux?


35

มีตัวแสดงกราฟบรรทัดคำสั่ง (สามารถไปป์) สำหรับไฟล์ภาพ SVG และ JPG / PNG ได้หรือไม่?

โดยเฉพาะอย่างยิ่งไฟล์กราฟ / รูปภาพเป็นไฟล์ที่ส่งออกผ่านไปป์ไลน์แทนที่จะเป็นไฟล์ธรรมดาดังนั้นจะต้องมีตัวเลือกเพื่อระบุประเภท / นามสกุลไฟล์

แม้ GV ทำงานได้กับ PS / PDF ที่สร้างโดยโปรแกรม dot ฉันต้องการทราบว่ามีทางเลือกอื่นสำหรับการสนับสนุน SVG หรือไม่ไฟล์ภาพ


1
เพื่อชี้แจง: ประเด็นหลักของคุณคือไม่ต้องแสดง. svg, .jpg และ. png บนคอนโซล ("บรรทัดคำสั่ง") แต่ต้องการไพพ์ประเภท mime ดังกล่าวกับโปรแกรมกราฟิกปกติ
akira

1
ใช่ฉันต้องการแสดงใน X เช่นเดียวกับ gv แต่ gv ไม่รองรับ SVG เป็นต้น
Xiè Jìléi

gwenview ค่อนข้างเร็วสงสัยว่าตรงกับความต้องการของคุณหรือไม่
Aquarius Power

คำตอบ:


35

คุณเคยลองไหม display โปรแกรมที่มาพร้อมกับ ImageMagick ?


3
AFAIK, Imagemagick เพียงอย่างเดียวไม่สามารถแสดงไฟล์ SVG ได้มันต้องการเครื่องมือที่แปลง SVG เป็นบิตแมป บนเดเบียน sudo aptitude install librsvg2-bin จำเป็นหากยังไม่ได้ติดตั้ง "rsvg-convert" แพคเกจนี้ยังมีผู้ชม rsvg-view-3 ที่ซูมได้ดีกว่า display.
Mytskine

1
@ Mytskine: ตามที่ เอกสารประกอบ ImageMagick มันจะใช้ตัวแสดง SVG ภายในของตัวเองหาก Inkscape หรือ RSVG ไม่สามารถใช้ได้
Dennis Williamson

1
ในระบบของฉัน: inkscape โหลดช้า inkview รวดเร็ว แต่ไม่สามารถเปลี่ยนมุมมองได้ display ใช้งานได้ดีสำหรับฉัน :-)
Hugh Perkins

ฉันไม่ได้จัดการเพื่อให้ inkview ทำงานจากการป้อนข้อมูลไปป์ แต่จอแสดงผลทำสิ่งที่ฉันต้องการได้อย่างแน่นอน :-) ฉันใช้งานได้เหมือนกัน go run my_svg_generator.go | display ขอบคุณ.
JepZ

1
คำเตือน !!!! อย่าใช้จอแสดงผลหากคุณรีบ !!! สำหรับไฟล์ svg ขนาด 500kb (จากการวิเคราะห์ปัญหาการบูต systemd) ใช้เวลา 20 นาทีก่อนที่ฉันจะสามารถใช้เครื่องของฉันอีกครั้งเนื่องจากใช้ 4GB (ขอ 7GB จาก virt.mem) ของ 6GB RAM ที่ป่องๆของฉันแล้วและแลกเปลี่ยนจำนวนมาก (5GB ไปเพื่อแลกเปลี่ยนเท่านั้นเพราะจอแสดงผล) :( ไม่แน่ใจเกี่ยวกับประสิทธิภาพของตัวเลือกอื่นใดที่จะเห็นภาพ svg tho., gwenview btw ค่อนข้างเร็ว
Aquarius Power

11

Inkscape มีผู้ชมมาแล้ว: inkview

มันไม่มีคุณสมบัติมันอาจจะช้าไปหน่อย แต่ก็ใช้งานได้ (และอาจทำให้ SVG แม่นยำกว่า ImageMagick display )


แค่อยากจะทราบว่าฉันพยายาม inkview (ผมเชื่อว่าจาก 0.48 inkscape) บน Ubuntu 10.04.3 เริ่มต้นขึ้นอย่างรวดเร็วอย่างน่าอัศจรรย์ (แก้ไข: แต่สำหรับขนาดเล็กเท่านั้น .svg s; ลอง inkview /usr/share/inkscape/examples/*.svg* อย่างที่หน้าคนบอกว่ามีบางอย่างที่นั่นด้วย ... ถึงกระนั้นการเริ่มต้นของ GUI คือ เร็วมาก) ขอขอบคุณสำหรับข้อความนี้ @ DenilsonSá - ไชโย!
sdaau

สำหรับ SVG ที่มีขนาดใหญ่จริงๆ inkview ดูเหมือนจะแตก
CMCDragonkai

10

คุณหมายถึงอะไรกับ 'ไปป์'
feh เป็นตัวแสดง commandline ที่ดีมากพร้อมตัวเลือกมากมาย


1
ฉันหมายความว่ามันรับอินพุตจาก stdin และเดาประเภท MIME ถ้าเป็นไปได้ หรือโดยระบุนามสกุลอย่างชัดเจนหากไม่สามารถคาดเดาประเภทไฟล์ได้ตามต้องการ
Xiè Jìléi

11
feh ดูเหมือนจะไม่สนับสนุน SVG เลย ฉันเข้าใจ " feh WARNING: pySVGLogo.svg - No Imlib2 loader for that file format "... ไชโย!
sdaau

1
หมายเหตุเพิ่มเติมน้อยลง: อันดับแรก feh หน้าแรก , ตัวอย่าง และ ภาพหน้าจอ ; ที่สอง ( ubuntu 10.04.3 ): เริ่มต้นอย่างรวดเร็ว มีแพ็คเกจ Debian / Ubuntu; มีการโต้ตอบกับเมาส์แปลก ๆ (ดู feh --help ในตอนท้าย); ฉันสามารถโหลดไดเรกทอรีของ png s และเก็บ หรือ กด (ปุ่มลูกศร) โหลดเร็วจนดูเหมือนว่า (หรือดีกว่า) ภาพเคลื่อนไหว. gif :) ... ไชโย!
sdaau

6

ฉันมักจะทำงานกับ SVG เป็นไฟล์ข้อความดังนั้นต้องการให้ผู้ดูรีเฟรชหน้าจอโดยอัตโนมัติทันทีที่ไฟล์ได้รับการบันทึก (และเนื้อหามีการเปลี่ยนแปลง) - นี่ควรใช้กับสถานการณ์ 'pipable' ฉันคิดว่า ท่อ).

โปรดทราบว่าสำหรับแอป Gnome เริ่มต้น:

  • evince ปัจจุบันทำงานเช่นนี้สำหรับ PDF แต่ดูเหมือนว่าจะไม่สามารถอ่าน SVG ได้ Unable to open document - Error opening file: Permission denied "เมื่อฉันพยายามโหลดไฟล์ SVG)
  • eog (Eye Of Gnome) - รุ่นล่าสุด - ยังสามารถตรวจสอบได้ว่าไฟล์มีการเปลี่ยนแปลงหรือไม่จากนั้นให้ปุ่ม 'โหลดซ้ำ' แต่เห็นได้ชัดว่าคุณยังคงต้องคลิกที่ 'โหลดซ้ำ' ทุกครั้ง (ฉันไม่เห็นวิธีที่จะทำให้เกิดการโหลดซ้ำอัตโนมัติเมื่อมีการเปลี่ยนแปลงไฟล์ใน eog, ชอบ evince ทำงานกับ PDF) - และอย่างน้อยใน Ubuntu 10.04 ของฉัน eog การสนับสนุน SVG ค่อนข้างใช้งานไม่ได้ (ซูมผลลัพธ์ที่มีเส้นพร่ามัว)
  • ImageMagick ของ display ไม่เพียง แต่จะไม่รีเฟรชอัตโนมัติเมื่อไฟล์มีการเปลี่ยนแปลงบนดิสก์ - และแม้กระทั่งเมื่อคุณกด 'รีเฟรช' ใน displayคุณยังทำ ไม่ รับไฟล์เวอร์ชันล่าสุด (หมายถึงคุณต้องรีสตาร์ท display เพื่อแสดงเวอร์ชันล่าสุด :()

ต่อไปนี้เป็นบันทึกเพิ่มเติมที่ฉันพบ:

  • Squiggle เบราว์เซอร์ SVG เบราว์เซอร์ SVG ที่เป็นส่วนหนึ่งของชุดเครื่องมือบาติก - ดาวน์โหลด Batik batik-1.7.zip; แกะมันออกมา วิ่ง java -jar batik-squiggle.jar และมันก็เป็น; ไม่รีเฟรชอิมเมจโดยอัตโนมัติหากไฟล์ svg เปลี่ยนไปในดิสก์
  • โปรแกรมดูรูปภาพ SVG? - ฟอรั่มอูบุนตู คำแนะนำ:
    • ในโพสต์ # 8 - " ฉันเขียนสคริปต์หลามเล็ก ๆ น้อย ๆ ... คุณเพียงเรียกใช้เป็น: svg_compare.py และมันเปิดขึ้น svg และแสดงมันโดยใช้ห้องสมุด svg และใช้ห้องสมุดแรสเตอร์ของ gtk คุณสามารถซูมด้วยเมาส์ ... "
    • xsvg (จาก http://cairographics.org ) - ฉันติดตั้งแล้ว libsvg1_0.1.4-1_i386.deb , libsvg-cairo1_0.1.6-5_i386.deb และ xsvg_0.2.1-3_i386.deb เพื่อให้; รุ่นเหล่านั้นมาจากปี 2005 เป็นต้นไป xsvg ง่ายมาก - ไม่มีการซูมไม่มีอะไรเลย .. และไม่จำเป็นต้องบอกว่ามันไม่ตอบสนองต่อการเปลี่ยนแปลงของไฟล์ที่บันทึกไว้โดยอัตโนมัติ ...
  • ผ่านสิ่งนั้นฉันก็พบว่า rsvg-viewซึ่งฉันคิดว่าเป็นส่วนหนึ่งของ sudo apt-get install librsvg2-bin. มันเล็กดีรองรับ stdin - แต่ยัง rsvg-view ไม่สามารถตรวจพบการเปลี่ยนแปลงไฟล์และรีเฟรชไฟล์โดยอัตโนมัติ ..

ใช่แล้วฉันหวังว่านี่จะช่วย ...
ไชโย!

แก้ไข (24 ธันวาคม '10): ดีนี่คือการมีส่วนร่วมของฉัน: svg_refreshview.py - ซึ่งโดยทั่วไปคือการทำงานซ้ำ svg_compare.py ที่กล่าวมาข้างต้นนั่นเป็นเพียงการแสดงไฟล์ SVG และโหลดไฟล์ใหม่และรีเฟรชจอแสดงผลหากไฟล์นั้นได้รับการแก้ไข ( มันใช้งานไม่ได้กับ stdin - แต่มีสคริปต์อื่น ๆ ใน repo ของฉันที่แยกวิเคราะห์ stdin ในไพ ธ อนพวกเขาอาจจะช่วย )

EDIT2 (20 พฤษภาคม 12): นอกจากนี้ยังมาพร้อมกับตัวอย่างสคริปต์ Perl-Tk ซึ่งเป็นน้ำมันดิบมาก ( ไม่มีการโต้ตอบกับเมาส์ไม่มีอะไร ) แต่ใช้ ImageMagick Perl API และสามารถแสดง SVG (เป็นบิตแมปบนผืนผ้าใบ) ได้โปรดดู answer # 10670039 - ImageMagick API สำหรับอินเตอร์เฟสบรรทัดคำสั่งแอปพลิเคชัน GUI ถึง display - สแต็คล้น .


มันเป็นครั้งคราวฉันได้แก้ไข Reload สิ่งของจาก eog เพียงเมื่อวานนี้! ฉันเกลียดปุ่มนั้นด้วย!
Xiè Jìléi

และบอกความจริงอีกข้อให้คุณ display มาจาก ImageMagick ปรับขนาด SVG ไม่ดีเพราะจะทำให้กราฟแสดงผลก่อนที่จะแสดง และยิ่งแย่กว่านั้นคือ display และ rsvg ไม่ทำงานกับไฟล์ SVG บางส่วนของฉัน จนถึงตอนนี้เฉพาะ FireFox ที่แสดงผลถูกต้อง FireFox ชนะทุกคน
Xiè Jìléi

สวัสดี @ 谢继雷ขอบคุณสำหรับความคิดเห็น! ดี - ฉันเพิ่งแก้ไขโพสต์ของฉันและเพิ่มลิงค์ไปยังสคริปต์ python ที่ฉันรวบรวมไว้ - ลองดูสิบางทีมันอาจช่วย ... ไชโย! +1 บนปุ่ม "เกลียดปุ่มนั้น" :) [แม้ว่าฉันต้องยอมรับว่า: ฉันมักจะมีปุ่มทำอะไรด้วยตนเองมากกว่า ไม่ มี :)) ฉันต้องการรีเฟรชอัตโนมัติเพิ่มพิเศษ :)]
sdaau

4

ฉันสองเดนนิสวิลเลียมสัน ข้อเสนอแนะ ของ ImageMagick display.

นอกจากนี้บางครั้งคุณสามารถใช้ ชื่อท่อ เพื่อไพพ์ข้อมูลไปยังโปรแกรมที่อ่านจากไฟล์

ตัวอย่าง:

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

แต่จะไม่ทำงานกับโปรแกรมที่คาดว่าจะสามารถค้นหาไฟล์ย้อนหลังได้


การใช้ไพพ์ที่มีชื่อนี้มีความคิดสร้างสรรค์มากขอบคุณ หลังจากลองฉันพบว่ามันใช้เวลาสักครู่ในการเริ่มต้นมันเป็นตัวแก้ไขการทำงานเต็มรูปแบบแทนที่จะดูง่าย
Xiè Jìléi

3

ดูเหมือนว่าผู้ชม Geeqie จะจัดการกับกราฟิก svg และจะโหลดภาพที่อัปเดตโดยอัตโนมัติ ฉันไม่รู้ว่ามันสามารถถ่ายภาพจาก stdin ได้หรือไม่ ฉันหวังว่ามันจะช่วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.