首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tmux -如何在窗格中显示图像?

tmux -如何在窗格中显示图像?
EN

Stack Overflow用户
提问于 2019-12-07 04:30:32
回答 1查看 1.3K关注 0票数 2

我想在tmux的窗格中显示一个动画GIF或任何其他图像。

我正在使用腹水学来完成此操作,并将其中一个示例程序(images.py)修改为:

  • 显示单个图像
  • 在"Ctrl+C“上不显示错误消息
  • 接受单个命令行arg“图像文件名”

这是我的脚本,唯一的问题是它似乎每10秒对正在显示的图像进行缓慢刷新。如何删除此刷新,因为图像是静态映像?

image.py

代码语言:javascript
复制
from __future__ import division
from asciimatics.effects import BannerText, Print, Scroll
from asciimatics.renderers import ColourImageFile, FigletText, ImageFile
from asciimatics.scene import Scene
from asciimatics.screen import Screen
from asciimatics.exceptions import ResizeScreenError
import sys

total = len(sys.argv)-1
if (total < 1):
    print ("Usage: IMG")
    sys.exit(1)

# Parsing args one by one
IMG = str(sys.argv[1])

def demo(screen):
    scenes = []
    effects = [
        Print(screen,
              ColourImageFile(
                  screen, IMG, 
                  screen.height-2,
                  uni=screen.unicode_aware,
                  dither=screen.unicode_aware),
                  0,
                  stop_frame=200
            )
    ]
    scenes.append(Scene(effects))
    screen.play(scenes, stop_on_resize=True)


# capture ctrl+c and exit nicely
import signal
import sys
def signal_handler(sig, frame):
        sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)

if __name__ == "__main__":
    while True:
        try:
            Screen.wrapper(demo)
            #Screen.wrapper(demo, catch_interrupt=True)
            sys.exit(0)
        except ResizeScreenError:
            sys.exit(0)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-07 04:32:58

我只需设置stop_frame=0,它就可以像指定的在医生里那样正常工作。

示例用法

代码语言:javascript
复制
$ python image.py /images/fox.jpg

image.py

代码语言:javascript
复制
from __future__ import division
from asciimatics.effects import BannerText, Print, Scroll
from asciimatics.renderers import ColourImageFile, FigletText, ImageFile
from asciimatics.scene import Scene
from asciimatics.screen import Screen
from asciimatics.exceptions import ResizeScreenError
import sys

total = len(sys.argv)-1
if (total < 1):
    print ("Usage: IMG")
    sys.exit(1)

# Parsing args one by one
IMG = str(sys.argv[1])

def demo(screen):
    scenes = []
    effects = [
        Print(screen,
              ColourImageFile(
                  screen, IMG, 
                  screen.height-2,
                  uni=screen.unicode_aware,
                  dither=screen.unicode_aware),
                  0,
                  stop_frame=200
            )
    ]
    scenes.append(Scene(effects))
    screen.play(scenes, stop_on_resize=True)


# capture ctrl+c and exit nicely
import signal
import sys
def signal_handler(sig, frame):
        sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)

if __name__ == "__main__":
    while True:
        try:
            Screen.wrapper(demo)
            #Screen.wrapper(demo, catch_interrupt=True)
            sys.exit(0)
        except ResizeScreenError:
            sys.exit(0)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59223002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档