ฉันสามารถดูรูปภาพและชมภาพยนตร์ภายในเครื่องจำลองเทอร์มินัลได้หรือไม่? ในกรณีของ virtual console ฉันสามารถทำได้ผ่าน framebuffer แต่ terminal emulators ล่ะ?
ฉันสามารถดูรูปภาพและชมภาพยนตร์ภายในเครื่องจำลองเทอร์มินัลได้หรือไม่? ในกรณีของ virtual console ฉันสามารถทำได้ผ่าน framebuffer แต่ terminal emulators ล่ะ?
คำตอบ:
ตัวอย่าง - ฉันต้องการเปลี่ยนพื้นหลังของเทอร์มินัลของฉัน
printf '\033}bp%s\000' \
'http://hdwalldesktops.com/wp-content/uploads/2014/02/background-backgrounds-high-resolution-abstract-picture-background-wallpaper.jpg'
มันจำลองค่าvt100 ที่ขยายเพิ่มขึ้นเล็กน้อยโดยมีส่วนขยายบางส่วนและส่งออกไป
> Most escapes supported by xterm, rxvt etc. work
> Xterm 256 color escapes work
> Backgrounds (bitmap, scalable/vector, animated gif, videos)
> Transparency
> Bitmap and scalable fonts supported
> Themes for the layout and design
> URL, file path and email address detection and link-handling
> Inline display of link content
> Multiple copy and paste selections and buffer support
> Works in X11
> Works in Wayland
> Works directly in the linux framebuffer (fbcon)
> Can be finger/touch controlled
> Scan scale by UI scaling factors
> Can render using OpenGL or OpenGL-ES2 (not a requirement - just an
option)
> Can display inlined media content (images, video, documents)
> Can do multiple "tabs"
> Can do splitting into multiple panes
> Block text selection
> Drag and drop of text selections and links
> Can stream media from URLs
> Tab switcher has live thumbnail content
> Single process, multiple windows/terminals support
> Fast (gives urxvt a run for its money)
> Themable visual bell
> Compress backscroll
> Text reflow on resize
> Color palette selection
> More...
คุณเห็นว่าข้างต้น? มันทำเช่นนี้ใน framebuffer
จำนวนเทอร์มินัลอีมูเลเตอร์รองรับSixel Graphicsจากหน้าGithub PySixelรายการคือ:
คุณสามารถแสดงภาพด้วยPySixel ข้างต้นซึ่งดูเหมือนว่าจะสามารถทำการแปลงที่จำเป็นได้ netpbm
อีกตัวเลือกหนึ่งคือการใช้เครื่องมือจาก ฉันได้ผลลัพธ์ที่ดีโดยใช้สิ่งต่อไปนี้เพื่อแปลงและแสดงภาพ JPEG บน mlterm
jpegtopnm image.jpg | pnmquant 256 | ppmtosixel >/dev/tty
ผลลัพธ์:
XTerm ยังสามารถแสดงภาพ Sixel ได้แม้ว่าการสนับสนุนจะ จำกัด อยู่ที่ 16 สี (และยังมีบั๊กกี้) สามารถดาวน์โหลดไฟล์เก็บถาวรที่มีภาพตัวอย่างได้ที่นี่แม้ว่าสคริปต์จะเสีย XTerm ไม่แสดงผลลัพธ์รูปแบบที่แน่นอนโดยppmtosixel
(ไม่สนับสนุนลำดับการควบคุมที่ใช้ในการเริ่ม / สิ้นสุด) ก่อนที่จะค้นพบPySixel
ฉันใช้ scrip ต่อไปนี้เพื่อแฮ็คppmtosixel
เอาต์พุตเป็นสิ่งที่ XTerm จะแสดง:
#!/bin/bash
echo -e '\eP0;0;0;q"1;2;400;400'
jpegtopnm "$1" |
pnmquant 16 |
ppmtosixel |
tail -n +2 |
head -c -3
echo -e '\x1b\x5c\x0d'
tput cup "$(tput lines)" 0
รูปภาพจะไม่ปรากฏในโหมด VT420 เริ่มต้น เฉพาะในโหมด VT240, VT241, VT330 หรือ VT340 เท่านั้นที่จะปรากฏขึ้น รวมถึง--enable-sixel-graphics
ตัวเลือกการสร้างที่จำเป็น ฉันพบผลลัพธ์ที่ดีที่สุดกับ VT340 ( xterm -ti vt340
) นี่คือผลลัพธ์ (ภาพแรกคือภาพตรอนที่ยอดเยี่ยมมากจากไฟล์เก็บตัวอย่าง):
perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'
ทำงานเป็นตัวกรองที่ยอดเยี่ยมหลังจาก ppmtosixel (และเวลาอื่น ๆ ที่คุณต้องการเปลี่ยนรหัส 8 บิต c1 เป็นเทียบเท่า 7 บิตของพวกเขา)
ฉันเพิ่งค้นพบโปรแกรมดูรูปภาพ Frame Buffer fbi
ในเทอร์มินัลอีมูเลเตอร์ของโลก Unix จำลองเทอร์มินัลอนุกรมซึ่งสตรีมข้อมูลที่จะแสดงต่อผู้ใช้จะถูกส่งทีละครั้งผ่านสายอนุกรม
ในช่วงเวลาของโมเด็มปกติจะมีความยาวประมาณ 1,000-2,000 ตัวอักษรต่อวินาที แต่อาจเร็วกว่านี้ในทุกวันนี้หากเกี่ยวข้องกับฮาร์ดแวร์ที่จำลองเท่านั้น มันขึ้นอยู่กับเทอร์มินัลเพื่อทำความเข้าใจกับไบต์ที่ส่ง โดยปกติจะเป็นการแสดงตัวอักษรเลื่อนเคอร์เซอร์และปรับการแสดงผลบนหน้าจอ เทอร์มินัลไม่กี่สามารถเปลี่ยนเป็นโหมดกราฟิก - gnuplot รองรับได้ไม่น้อย - แต่แบนด์วิดท์นั้นเล็กเกินไปที่จะทำสิ่งที่น่าสนใจในแง่ของวิดีโอ
ถึงกระนั้นสำหรับคอมพิวเตอร์ที่ทันสมัยที่มีฮาร์ดแวร์ที่มีการจำลองเทอร์มินัลอีมูเลเตอร์สามารถทำได้ค่อนข้างมาก ลองค้นหารูปภาพด้วยคำค้นหา "ttyquake" เพื่อดูบางส่วน ฉันจะบอกว่าถ้าคุณกระหายความคมชัดระดับ HD คุณอาจจะผิดหวังมากที่สุด