ฉันกำลังมองหาโปรแกรมดูรูปภาพที่ใช้ข้อมูลstdinและสามารถทำงานได้เช่น:
cat image.png | imageviewer
ฉันกำลังมองหาโปรแกรมดูรูปภาพที่ใช้ข้อมูลstdinและสามารถทำงานได้เช่น:
cat image.png | imageviewer
คำตอบ:
displayโปรแกรมของ ImageMagick จะทำเช่นนั้นโดยสมมติว่าคุณทำสิ่งที่เข้าใจ
cat image.png | display
และมันจะปรากฏหน้าต่างแสดงภาพนั้นขึ้นมา
displayImageMagick ของ
display < foo.png
บน Linux (และ BSD น่าจะ) เกือบทั้งหมดถ้าคุณให้/dev/stdinเป็นเส้นทาง ซึ่งรวมถึง: xloadimage,, fehEye of GNOME ( eog)
eog /dev/stdin < "$file"
(บางไฟล์อาจทำงานได้ดีกับไฟล์พิเศษเช่น GThumb ไม่สามารถทดสอบได้)
< "$file"เป็นตัวอย่าง ประเด็นคือว่าโปรแกรมสามารถรับกระแสข้อมูลแบบสุ่มไม่ว่าจะเป็นการเปลี่ยนเส้นทางแบบง่าย ๆ หรือสิ่งที่ก้าวหน้ากว่า (เช่นการให้ภาพผ่าน stdin, ไปป์ที่มีชื่อ, การทดแทนกระบวนการ, ซ็อกเก็ตหรืออุปกรณ์ตัวอักษร) ปัญหาคือผู้ดูจำนวนมากต้องการให้ fd สามารถค้นหาได้ซึ่งมีเฉพาะไฟล์และอุปกรณ์บล็อกปกติเท่านั้น
cat graph.png | eog /dev/stdinล้มเหลว แต่eog /dev/stdin < graph.pngทำงานได้
|) ด้วยหรือไม่
eogกำลังค้นหาข้อมูลเกี่ยวกับ file descriptor (ซึ่งประสบความสำเร็จในกรณีพิเศษที่ถูกเปลี่ยนเส้นทางโดยตรงจากไฟล์) ในขณะที่โปรแกรม Unix ปกติจะรับอินพุตโดยไม่คำนึงว่ามันมาจากที่ใด ดังนั้นeogจะไม่ทำงานสำหรับ stdin ทั่วไป โปรแกรมอื่นที่ใช้งานได้คือgwenview /dev/stdin(โปรแกรมดูรูปภาพ KDE)
FIFO สามารถทำงานได้โดยeogไม่มีการสนับสนุนการวางท่อ:
mkfifo ${tmpfilename};
cat ${file} > ${tmpfilename} &;
eog /dev/stdin < ${tmpfilename};
rm ${tmpfilename};
AFAIK สิ่งนี้ควรใช้งานได้
คุณสามารถใช้ feh มันค่อนข้างเร็ว
cat image.png | feh --scale-down -
feh เป็นโปรแกรมดูรูปภาพที่มีน้ำหนักเบาซึ่งอยู่ในแหล่งเก็บข้อมูลเริ่มต้นของลีนุกซ์หลายรุ่น โดยมีวัตถุประสงค์เพื่อผู้ใช้บรรทัดคำสั่งที่ต้องการโปรแกรมดูรูปภาพที่รวดเร็วโดยไม่ต้องพึ่งพา GUI มาก
ImageMagick 6.8.8-1 Q16 i686 2014-01-04ผมยังจำเป็นต้องผ่าน-เป็นพารามิเตอร์: หรือ$ cat image.png | display -$ display - < image.png