Überzug:用于在终端上绘制图像的CLI实用程序

2020-12-27 07:29:51

Überzug是一个命令行实用程序,允许使用子窗口在终端上绘制图像。

注意:您可以通过使用枕头模拟而不是枕头来提高图像处理功能的性能。

通过stdin实现通信。命令是使用传递的参数执行特定操作的请求。 (因此命令必须包含键值对" action&#34 ;: action_name)命令之间用换行符分隔。

名称:添加说明:将图像添加到屏幕。如果已经有一个具有相同标识符的图像,它将被替换。

不推荐使用:如果缩放器的宽度大于最大宽度,则将被调整为缩放器(此行为由默认缩放器包含实现)将被调整大小(同时保持其宽高比)

不推荐使用:如果缩放器的高度大于最大高度,则将被调整为缩放器(此行为由默认缩放器包含实现)将被调整大小(同时保持其宽高比)

中心位置(如果可能)指定为图像大小的因数,因此应为[0,1]的元素。

调整图像的大小,使其宽度与最大宽度匹配或高度与最大高度匹配,同时保持图像比例。

在保持图像比例的同时,将图像调整为小于等于放置尺寸的尺寸。

调整图像大小以覆盖应填充的整个区域,同时保持图像比例。如果图像小于所需的尺寸,它将被拉伸以达到所需的尺寸。如果面积比例不同于图像比例,则边缘将被切除。

与forced_cover相同,但是如果图像小于应填充的区域,则不会拉伸图像。

提醒一下:这是GPLv3许可的项目,因此,如果您使用这些库中的任何一个,则还需要使用GPLv3兼容许可证来许可它。

首先,该库不遵循posix标准,因此您不能在bash之外的任何其他shell中使用它。

此外,还将为每个动作声明一个名为ImageLayer :: {action_name}的函数。每个函数都将各自操作的键值对作为参数。这些函数的每个参数都必须是关联的键值对。 ImageLayer :: {action_name} [{key0}] =" {value0}" [{key1}] =" {value1}" ...执行这样的函数会根据传递的参数构建所需的命令字符串,并将其打印到stdout。

首先,这里没有提到的所有内容都不安全使用,并且不一定会随新的版本一起提供。

添加操作的每个键值对都是一个属性(标识符除外)。如果放置位置可见,则更改其中之一将导致构建并传输添加命令。标识符键值对实现为属性,并且不可更改。

初始可见性状态(如果需要,则可以设置每个没有默认值的属性)

此放置位置的可见性状态-将其设置为VISIBLE导致发送添加命令-将其设置为INVISIBLE导致发送删除命令

警告:传输命令可能会导致IOError。 (在向可见的Placement的属性分配新值时发生传输。如果使用lazy_drawing,则传输会延迟到退出with语句为止。)

画布:应该与带声明或装饰功能一起使用。 (启动和停止ueberzug进程)

防止多次使用相同的标识符,采用与Placement构造函数相同的参数(canvas参数除外)

装饰器返回一个函数,该函数使用关键字参数canvas = this_canvas_object调用修饰的函数。当然,其他论点也可以通过。

与lazy_drawing相同。此外,强制立即重新绘制窗口。

在更改展示位置时立即发送命令。如果禁用的命令将不被发送,直到留下lazy_drawing或sync_lazy_drawing带状态语句或调用request_transmission(force = True)为止。默认值:True

#进程替换示例:ueberzug layer --parser bash 0< <(声明-Ap add_command =([action] =" add" [identifier] =" example0" [x] =" 0" [y ] =" 0" [path] =" /some/path/some_image0.jpg")声明-Ap add_command =([action] =" add&#34 ; [identifier] =" example1" [x] =" 10" [y] =" 0" [path] =" / some /path/some_image1.jpg")睡眠5声明-Ap remove_command =([action] ="删除" [identifier] =" example0")睡眠5)#组命令示例:{clarify -Ap add_command =([action] =" add" [identifier] =" example0" [x] =" 0" [y] =" 0" [path] =" /some/path/some_image0.jpg")声明-Ap add_command =([action] =" add& #34; [identifier] =" example1" [x] =" 10" [y] =" 0" [path] =" /some/path/some_image1.jpg")读取声明-Ap remove_command =([action] =" remove" [identifier] =" example0")read} | ueberzug层--parser bash

进口诅咒进口时间从诅咒开始。 textpad导入文本框,矩形导入ueberzug。库v0作为ueberzug @ ueberzug。 Canvas()def main(stdscr,canvas):演示= canvas。 create_placement(&demo',x = 10,y = 0)stdscr。 addstr(0,0,"输入IM消息:(按Ctrl-G发送)")editwin = curses。 newwin(5,30,3,1)矩形(stdscr,2,0,2 + 5 + 1,2 + 30 +1)stdscr。 refresh()box = Textbox(editwin)#让用户进行编辑,直到按下Ctrl-G为止。框。 edit()#获取结果内容message = box。 collect()演示。路径=''。 join(message。split())演示。能见度= ueberzug。能见度。可见的时间。 sleep(2)如果__name__ ==' __ main __&#39 ;:诅咒。包装器(主)

一般示例:导入ueberzug。库如果__name__ ==' __ main __&#39 ;:带有ueberzug,则将v0作为ueberzug导入时间。 Canvas()as c:路径= [' /some/path/some_image.png' ;,' /some/path/another_image.png'] demo = c。 create_placement(&demo',x = 0,y = 0,缩放器=ueberzug。ScalerOption。覆盖值)演示。路径=路径[0]演示。能见度= ueberzug。能见度。对于i在范围(30)中可见:带有c。 lazy_drawing:演示。 x = i * 3演示。 y = i * 3个演示。 path = paths [i%2]时间。睡眠(1/30)时间。睡眠(2)