Tôi có thể xem hình ảnh và xem phim bên trong trình giả lập thiết bị đầu cuối không? Trong trường hợp giao diện điều khiển ảo tôi có thể thực hiện thông qua bộ đệm khung, nhưng còn trình giả lập thiết bị đầu cuối thì sao?
Tôi có thể xem hình ảnh và xem phim bên trong trình giả lập thiết bị đầu cuối không? Trong trường hợp giao diện điều khiển ảo tôi có thể thực hiện thông qua bộ đệm khung, nhưng còn trình giả lập thiết bị đầu cuối thì sao?
Câu trả lời:
Một số trình giả lập thiết bị đầu cuối hỗ trợ Sixel Graphics , từ trang github PySixel , danh sách là:
Bạn có thể hiển thị hình ảnh với PySixel được đề cập ở trên , dường như có thể thực hiện các chuyển đổi cần thiết. Một lựa chọn khác là sử dụng các công cụ từ netpbm
. Tôi đã có kết quả tốt khi sử dụng các cách sau để chuyển đổi và hiển thị hình ảnh JPEG trên mlterm:
jpegtopnm image.jpg | pnmquant 256 | ppmtosixel >/dev/tty
Kết quả:
XTerm cũng có thể hiển thị hình ảnh Sixel, mặc dù hiện tại hỗ trợ chỉ giới hạn ở 16 màu (và cũng có lỗi). Một kho lưu trữ chứa hình ảnh mẫu có thể được tải xuống ở đây , mặc dù các tập lệnh dường như bị phá vỡ. XTerm không hiển thị đầu ra định dạng chính xác bằng ppmtosixel
(nó không hỗ trợ các chuỗi điều khiển được sử dụng ở đầu / cuối). Trước khi tìm PySixel
, tôi đã sử dụng đoạn mã sau để hack ppmtosixel
đầu ra vào thứ gì đó mà Xermerm sẽ hiển thị:
#!/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
Hình ảnh sẽ không được hiển thị ở chế độ VT420 mặc định. Chỉ ở các chế độ VT240, VT241, VT330 hoặc VT340, chúng mới được hiển thị. Ngoài ra --enable-sixel-graphics
tùy chọn xây dựng là bắt buộc. Tôi tìm thấy kết quả tốt nhất với VT340 ( xterm -ti vt340
). Dưới đây là kết quả (đầu tiên là hình ảnh tron rất tuyệt từ kho lưu trữ mẫu):
perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'
hoạt động như một bộ lọc tuyệt vời sau ppmtosixel (và bất kỳ thời điểm nào khác bạn muốn chuyển mã c1 8 bit thành tương đương 7 bit của chúng).
Chẳng hạn - tôi muốn thay đổi hình nền của thiết bị đầu cuối của mình?
printf '\033}bp%s\000' \
'http://hdwalldesktops.com/wp-content/uploads/2014/02/background-backgrounds-high-resolution-abstract-picture-background-wallpaper.jpg'
Nó mô phỏng một vt100 hơi mở rộng với một số phần mở rộng và bling ném vào.
> 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...
Bạn thấy điều đó ở trên? Nó làm điều này trong bộ đệm khung.
Ừ kiểu vậy, chắc vậy. Mplayer, ví dụ, hỗ trợ cả kết xuất video aalib (đơn sắc) và libcaca (màu) trong một thiết bị đầu cuối văn bản. Nó không chính xác với độ phân giải cao, nhưng với cả kết xuất "pixel" phụ và phối màu theo thời gian làm tăng độ phân giải hiệu quả, bạn thường có thể biết chuyện gì đang xảy ra.
Trong trình giả lập thiết bị đầu cuối thế giới Unix mô phỏng các thiết bị đầu cuối nối tiếp, trong đó luồng dữ liệu được hiển thị cho người dùng được gửi cùng lúc trên một dòng nối tiếp.
Trong thời gian modem, tốc độ này thường khoảng 1000-2000 ký tự một giây, nhưng ngày nay có thể nhanh hơn nhiều nếu chỉ có phần cứng giả lập. Sau đó, đến thiết bị đầu cuối để hiểu các byte được gửi. Thông thường, điều này là để hiển thị các ký tự, di chuyển con trỏ và thao tác trên màn hình. Một vài thiết bị đầu cuối có thể chuyển sang chế độ đồ họa - gnuplot hỗ trợ khá nhiều - nhưng băng thông quá nhỏ để làm bất cứ điều gì thú vị về mặt video.
Tuy nhiên, đối với một máy tính hiện đại có phần cứng giả lập, trình giả lập thiết bị đầu cuối có thể làm được khá nhiều việc. Hãy thử tìm kiếm hình ảnh với cụm từ tìm kiếm "ttyquake" để xem một số sau đó. Mặc dù vậy, tôi sẽ nói rằng nếu bạn thèm HD thì rất có thể bạn sẽ thất vọng.