在支持Sixel的终端上查看全像素彩色图形(xterm/mlterm/decterm/reflection/rlogin/tanasinn/yaft)

PySixel的Python项目详细描述


Sixel是什么?

https://raw.githubusercontent.com/saitoha/PySIXEL/data/data/sixel_gnuplot.png

sixel是dec-vt系列引入的终端成像图像格式之一。 sixel图像数据方案被表示为一个终端友好的转义序列。 所以如果你想显示一个sixel图像文件,你所要做的就是把它“猫”到你的终端上。

另请参阅更快的高质量c实现 诽谤罪:https://github.com/saitoha/libsixel

https://raw.githubusercontent.com/saitoha/PySIXEL/data/data/sixel_hikari.png

我听说Sixel得到了一些旧的终端应用程序的支持,比如SAS、WordPerfect。

现在netpbm和gnuplot支持这一点。

https://raw.githubusercontent.com/saitoha/PySIXEL/data/data/sixel_ls.png

要求

如果你想看Sixel图像,你必须要有一个终端 支持Sixel图形。

现在sixel特性由以下终端支持。

安装

通过Github

$ git clone https://github.com/saitoha/PySixel.git
$ cd pysixel
$ python setup.py install

或通过PIP

$ pip install PySixel

用法

pysixel提供了一个命令行工具:

$ sixelconv [options] filename

$ cat filename | sixelconv [options]
  • 选项:

    -h, --help                                            show this help message and exit
    -8, --8bit-mode                                       Generate a sixel image for 8bit terminal or printer
    -7, --7bit-mode                                       Generate a sixel image for 7bit terminal or printer
    -r, --relative-position                               Treat specified position as relative one
    -a, --absolute-position                               Treat specified position as absolute one
    -x LEFT, --left=LEFT                                  Left position in cell size, or pixel size with unit 'px'
    -y TOP, --top=TOP                                     Top position in cell size, or pixel size with unit 'px'
    -w WIDTH, --width=WIDTH                               Width in cell size, or pixel size with unit 'px'
    -e HEIGHT, --height=HEIGHT                            Height in cell size, or pixel size with unit 'px'
    -t ALPHATHRESHOLD, --alpha-threshold=ALPHATHRESHOLD   Alpha threshold for PNG-to-SIXEL image conversion
    -c, --chromakey                                       Enable auto chroma key processing
    -n NCOLOR, --ncolor=NCOLOR                            Specify number of colors
    -b, --body-only                                       Output sixel without header and DCS envelope
    -f, --fast                                            The speed priority mode (default)
    -s, --size                                            The size priority mode
    

示例

查看图像文件:

$ sixelconv test.png

从图像文件生成sixel文件:

$ sixelconv < test.png > test.six

查看生成的Sixel文件:

$ cat test.six

在xterm中显示sixel

$ curl ftp://invisible-island.net/xterm/xterm-301.tgz | tar xz
$ cd xterm-301
$ ./configure --enable-wide-chars --enable-sixel-graphics --enable-256-color
$ make
# make install
$ xterm -ti vt340 -e 'sixelconv -n16 ~/testdir/test.jpg'

代码示例

import sixel
writer = sixel.SixelWriter()
writer.draw('test.png')

出资人

  • @cocuh (Python3 support)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javajaxb在嵌套节点中生成xmlns:xsi声明   java重定向到youtube以上传jsp上可用的视频   java提高了JVM和ANT的性能   java如何将返回的JSON数据放在HTML表单中   java如何发送XWWWFORMURLENCODE在重新授权   java为什么jvm XX:+EliminateAllocations失败   堆移除和重建方法?(爪哇)   Stanford NPL in Spark(Scala)应用程序运行到Java堆空间(Java.lang.OutOfMemoryError)   调试java中打开/关闭println的任何方式(详细模式)   java IntelliJ在鼠标悬停时显示JavaDocs工具提示   Olingo Odata Java中的自动扩展选项   json将postgres文本arry转换为java列表?   oop需要帮助推断Java代码   复选框的java添加操作侦听器AbstractTableModel   java如何从公共静态void main(String[]args)传递值   java从数据库中获取大值   java Processing 2.0电影从jar运行时无法打开电影文件   java如何在不使用应用程序的情况下刷新活动?   尝试将JSON解析为ListView时的Android:JSON parse:null对象引用