共计 2876 个字符,预计需要花费 8 分钟才能阅读完成。
ASCIIPlayer : Golang 写的 ASCII 码播放器
ASCIIPlayer 是一个基于 Image2ASCII 的 ASCII 码播放器,可以播放图片,gif 动图,视屏(还在开发中)等,提供了类库和命令行工具方便使用。
HomePage: https://github.com/qeesung/as… 欢迎 Star
先上一个效果图
特性
支持在终端中播放一般的图片,比如 PNG,JPEG,也支持播放 GIF 动图和视屏。
支持将一个图片,PNG,JPEG 类型和 GIF 动图和视屏直接编码成为一个 ASCII 码图片。
支持搭建一个 Http Server 来分享 ASCII 图片到远程的一个客户端。
工作原理
首先将任何一个输入的文件通过解码器解码成个一个帧序列,不同的文件有不同的解码器,比如 GIF 文件有 GifDecoder
然后将解码出来的帧序列通过 Image2ASCII 转换器转换成 ASCII 码图片
然后将转换以后的 ASCII 图片输出到不同的 IO 中去,其中包括:
输出到一个一般文件中 (Encode 模式):这里我们只能逐帧,逐像素的将转化以后的 ASCII 图像写到文件中去。
输出到终端 (Play 模式): 直接将转换以后的图像按照一定的频率输出到终端即可。
输出到远端客户端 (Server 模式): 这里和输出到终端的原理类似,只是输出到了远端客户端所在的终端。
+—————+ +———+
| | | |
+——> Gif Decoder | +—> Encoder +—> file
| | | | | |
| +—————+ | +———+
| +—————+ +————-+ | +———+
| | | | | | | |
Input File+——> Image Decoder +—> Frames +–>+ Image2ASCII +->ASCII Frames-+—> Player +—> stdout
| | | | | | | |
| +—————+ +————-+ | +———+
| +—————+ | +———+
| | | | | |
+——> Video Decoder | +—> Server +—> socket
| | | |
+—————+ +———+
安装
go get -u github.com/qeesung/asciiplayer
命令行使用
_ ____ ____ ___ ___ ____ _ _ __ _______ ____
/ \ / ___| / ___|_ _|_ _| _ \| | / \\ \ / / ____| _ \
/ _ \ \___ \| | | | | || |_) | | / _ \\ V /| _| | |_) |
/ ___ \ ___) | |___ | | | || __/| |___ / ___ \| | | |___| _ <
/_/ \_\____/ \____|___|___|_| |_____/_/ \_\_| |_____|_| \_\
>>>Version : 1.0.0
>>>Author : qeesung
>>>HomePage : https://github.com/qeesung/asciiplayer
asciiplayer is a library that can convert gif and video to ASCII image
and provide the cli for easy use.
Usage:
asciiplayer [command]
Available Commands:
encode Encode gif or video to ascii gif or video
help Help about any command
play Play the gif and video in ASCII mode
server Server command setup a http share server
version Show the version
Flags:
-D, –debug Switch log level to DEBUG mode
-h, –help help for asciiplayer
Use “asciiplayer [command] –help” for more information about a command.
播放命令 play
播放命令直接在终端中播放对应的媒体,比如 PNG 和 GIF 图片。
可以通过 asciiplayer play - h 来获得更多细节
Play 例子
通过适配屏幕的方式播放 GIF
asciiplayer play demo.gif
缩小为原来的十分之一,然后播放 GIF
asciiplayer play demo.gif -r 0.1
缩放成固定的长和宽,然后播放 GIF
asciiplayer play demo.gif -w 100 -h 40
播放一个 PNG 图片
asciiplayer play demo.png
编码命令 encode
编码命令可以将一个 PNG 图片或者是 GIF 动图,视屏文件转化成一个 ASCII 的文件
可以运行 asciiplayer encode - h 来获得更多细节
输入文件 eye.gif
输出文件 ascii_eye.gif
Encode 例子
讲一个 GIF 文件 demo.gif 编码为 ASCII 的 Gif 文件 output.gif
asciiplayer encode demo.gif -o output.gif
指定输出 ASCII 字符大小的情况下,讲一个 GIF 文件 demo.gif 编码成 ASCII 的 GIF 动图文件 output.gif
asciiplayer encode demo.gif -o output.gif –font_size=5
将 GIF 动图 demo.gif 缩放为原来的十分之一,然后编码成 ASCII 的 GIF 动图文件 output.gif
asciiplayer encode demo.gif -o output.gif -r 0.1
编码一个 jpeg 文件,然后输出一个 ASCII 的 output.png 文件
asciiplayer encode demo.jpeg -o output.png
服务命令 server
可以搭建一个 Http Server,然后将转换以后的图片分享到远端的客户端。
搭建服务
$ asciiplayer server demo.gif
# Server available on : http://0.0.0.0:8080
远端访问
$ curl http://hostname:8080
# play ascii image here
可以通过运行命令 asciiplayer server –help 来获得更多细节
Server 例子
输入 demo.gif,并以默认端口 8080 启动一个 http 服务器
asciiplayer server demo.gif
输入 demo.gif,并以自定义端口 8888 启动一个 http 服务器
asciiplayer server demo.gif –port 8888
输入一个 demo.png 图片,并且启动 http 服务器
asciiplayer server demo.png
一些例子
Raw Image
ASCII Image
HomePage: https://github.com/qeesung/as… 欢迎 Star