1seq2gif
2=======
3[![Build Status](https://travis-ci.org/saitoha/seq2gif.svg?branch=master)](https://travis-ci.org/saitoha/seq2gif)
4[![Coverage Status](https://img.shields.io/coveralls/saitoha/seq2gif.svg)](https://coveralls.io/r/saitoha/seq2gif)
5
6
7Description
8------------
9
10This software converts a sequences record file generated by [ttyrec](https://github.com/mjording/ttyrec)
11into a gif animation directly(without taking screenshots),
12by using portable built-in terminal emulation engine originated
13from [yaft](https://github.com/uobikiemukot/yaft).
14[yaft](https://github.com/uobikiemukot/yaft) provides rare terminal emulation
15features such as SIXEL/DRCS.
16
17
18Demo
19----
20
21Play [sl](https://github.com/mtoyoda/sl).
22
23![img2sixel](https://raw.githubusercontent.com/saitoha/seq2gif/master/images/sl.gif)
24
25
26Show SIXEL animation with [img2sixel](https://github.com/saitoha/libsixel#img2sixel).
27
28![img2sixel](https://raw.githubusercontent.com/saitoha/seq2gif/master/images/sixel.gif)
29
30
31The following demo plays [sl](https://github.com/mtoyoda/sl) and records it with [ttyrec](https://github.com/mjording/ttyrec), and
32converts that record into a GIF animation using seq2gif,
33and converts that GIF into a SIXEL animation and plays it with [img2sixel](https://github.com/saitoha/libsixel#img2sixel).
34Furthermore, generates the log record of above experience using [ttyrec](https://github.com/mjording/ttyrec), and
35converts that log into the following GIF animation.
36
37![ttyrec](https://raw.githubusercontent.com/saitoha/seq2gif/master/images/ttyrec.gif)
38
39
40Download
41--------
42Source package and Windows binary is [available](https://github.com/saitoha/seq2gif/releases/).
43
44
45Build and Install
46-----------------
47
48This software works in Windows, Linux, BSDs and OSX.
49If you want to build windows native build, [MinGW](http://www.mingw.org/) is required.
50
51```
52  $ ./configure
53  $ make
54  # make install
55```
56
57Usage
58-----
59
60```
61Usage: seq2gif [Options] < ttyrecord > record.gif
62       seq2gif [Options] -i ttyrecord -o record.gif
63
64Options:
65-w WIDTH, --width=WIDTH               specify terminal width in cell size.
66                                      (default: 80)
67-h HEIGHT, --height=HEIGHT            specify terminal height in cell size.
68                                      (default: 24)
69-l DELAY, --last-frame-delay=DELAY    specify delay in msec which is added
70                                      to the last frame. (default: 300)
71-f COLORNO --foreground-color=COLORNO specify foreground color palette.
72                                      number.
73-b COLORNO --background-color=COLORNO specify background color palette
74                                      number.
75-c COLORNO --cursor-color=COLORNO     specify cursor color palette
76                                      number.
77-t TABSTOP --tabstop=TABSTOP          specify hardware tabstop(default: 8)
78-j --cjkwidth                         treat East Asian Ambiguous width
79                                      characters (UAX#11) as wide.
80-r COUNT --repeat=COUNT               specify animation repeat count. loop
81                                      infinitely if 0 is given. (default: 0)
82-i FILE --input=FILE                  specify input file name. use STDIN
83                                      if '-' is given. (default: '-')
84-o FILE --output=FILE                 specify output file name. use STDOUT
85                                      if '-' is given. (default: '-')
86-V, --version                         show version and license information.
87-H, --help                            show this help.
88```
89
90
91Acknowledgements
92----------------
93
94### recterm
95
96This program is derived from [recterm](https://github.com/uobikiemukot/recterm)
97written by haru <uobikiemukot at gmail dot com> ([@uobikiemukot](https://github.com/uobikiemukot/))
98
99### yaft
100
101Some part of glyph data generator(glyph/*) is imported from [yaft](http://uobikiemukot.github.io/yaft/)
102written by haru <uobikiemukot at gmail dot com> ([@uobikiemukot](https://github.com/uobikiemukot/))
103
104### gifsave89
105
106GIF encoder (gifsave89.c) is imported from [gifsave89](http://www.forkosh.com/gifsave90.html)
107distributed under GPLv3+ by [John Forkosh Associates, Inc.](http://www.forkosh.com)(john@forkosh.com)
108
109### milkjf
110This package includes a milkjf font and its derivative(gryph/milkjf.h).
111Original milkjf font was designed by japanfarm (Nihon-Nouen) and used on Sharp X68000 series.
112Chisato Yamauchi converted milkjf font to bdf for X Window System.
113haru([@uobikiemukot](https://github.com/uobikiemukot/)) converted it to a C-styled header file.
114
115### M+ BITMAP FONTS
116This package includes [M+ Bitmap Font](http://mplus-fonts.sourceforge.jp/mplus-bitmap-fonts/index.html)
117and its derivative(gryph/mplus.h).
118
119License:
120
121```
122M+ BITMAP FONTS            Copyright 2002-2005  COZ <coz@users.sourceforge.jp>
123
124LICENSE
125
126These fonts are free softwares.
127Unlimited permission is granted to use, copy, and distribute it, with
128or without modification, either commercially and noncommercially.
129THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.
130```
131
132### GNU Unifont
133This package includes [GNU Unifont Glyphs](http://unifoundry.com/unifont.html)
134and its derivative(gryph/unifont.h).
135
136License: GPLv2+
137http://unifoundry.com/LICENSE.txt
138
139
140```
141M+ BITMAP FONTS            Copyright 2002-2005  COZ <coz@users.sourceforge.jp>
142
143LICENSE
144
145These fonts are free softwares.
146Unlimited permission is granted to use, copy, and distribute it, with
147or without modification, either commercially and noncommercially.
148THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.
149```
150
151### M+ BITMAP FONTS
152This package includes a C header file derived from M+ font(gryph/mplus.h).
153
154
155### Markus Kuhn's wcwidth
156This package includes Markus Kuhn's wcwidth(mk_wcwidth)
157
158```
159Markus Kuhn -- 2007-05-26 (Unicode 5.0)
160
161Permission to use, copy, modify, and distribute this software
162for any purpose and without fee is hereby granted. The author
163disclaims all warranties with regard to this software.
164
165Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
166```
167
168Contributors
169-------------
170
171- [@arakiken](https://bitbucket.org/arakiken/profile/repositories)
172- [IWAMOTO Kouichi(@ttdoda)](https://github.com/ttdoda)
173
174
175Similar Software
176----------------
177
178### [sugyan/ttyrec2gif](https://github.com/sugyan/ttyrec2gif)
179
180This also generates GIF animation without taking screenshots, written in [Go](http://golang.org/).
181Using [j4k.co/terminal](http://godoc.org/j4k.co/terminal) as terminal emulation engine().
182It is derived from [sugyan/ttygif](https://github.com/sugyan/tty2gif).
183
184
185### [uobikiemukot/recterm/tools/rec2gif.c](https://github.com/uobikiemukot/recterm/blob/master/tools/rec2gif.c)
186
187Additional tools which uses [yaft](https://github.com/uobikiemukot/yaft) terminal emulation engine,
188distributed with [uobikiemukot/recterm](https://github.com/uobikiemukot/recterm/).
189
190
191References
192----------
193
194### [ttyrec](http://0xcc.net/ttyrec/index.html.en)
195
196A tty recorder.
197
198### [ttyrec4windows](https://github.com/mattn/ttyrec4windows)
199
200A Windows port for [ttyrec](http://0xcc.net/ttyrec/index.html.en) written in [Go](http://golang.org/).
201
202
203License
204-------
205
206![GPLv3](https://raw.githubusercontent.com/saitoha/seq2gif/master/images/gplv3.png)
207
208