Jeff Epler c34b6f757f Implement gifio.GifWriter
This involves:
 * Adding a new "L8" colorspace for colorconverters
 * factoring out displayio_colorconverter_convert_pixel
 * Making a minimal "colorspace only" version of displayio for the
   unix port (testing purposes)
 * fixing an error message

I only tested writing B&W animated images, with the following script:
```python
import displayio
import gifio

with gifio.GifWriter("foo.gif", 64, 64, displayio.Colorspace.L8) as g:
    for i in range(0, 256, 14):
        data = bytes([i, 255-i] * 32 + [255-i, i] * 32) * 32
        print("add_frame")
        g.add_frame(data)

# expected to raise an error, buffer is not big enough
with gifio.GifWriter("/dev/null", 64, 64, displayio.Colorspace.L8) as g:
    g.add_frame(bytes([3,3,3]))
```
2021-10-26 08:54:18 -05:00
..
2021-10-26 08:54:18 -05:00
2021-06-18 10:54:19 -05:00
2021-06-18 10:54:19 -05:00
2021-06-18 10:54:19 -05:00
2021-06-18 10:54:19 -05:00
2021-06-18 10:54:19 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-26 08:54:18 -05:00
2021-06-18 10:54:19 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-03-15 19:27:36 +05:30
2021-04-19 22:22:44 -07:00
2021-09-14 16:24:37 -07:00
2020-07-06 19:16:25 +01:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-08-07 09:23:35 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 15:11:21 -05:00
2021-10-15 08:20:54 -05:00
2021-03-15 19:27:36 +05:30
2021-04-19 22:22:44 -07:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-08-29 11:36:29 -05:00
2021-10-15 08:20:54 -05:00
2020-07-06 19:16:25 +01:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-06-02 12:10:41 +09:00
2021-05-08 20:17:16 -05:00
2021-05-08 20:17:16 -05:00
2021-04-19 22:22:44 -07:00
2021-06-18 10:54:19 -05:00
2020-07-06 19:16:25 +01:00
2021-06-18 10:54:19 -05:00
2021-04-19 22:22:44 -07:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-04-19 22:22:44 -07:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-08-04 12:10:57 +05:30
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-08-17 17:41:59 -07:00
2021-08-04 12:10:57 +05:30
2021-10-15 08:20:54 -05:00
2021-04-19 22:22:44 -07:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-06-18 10:54:19 -05:00
2020-07-06 19:16:25 +01:00
2021-04-19 22:22:44 -07:00
2021-10-15 08:20:54 -05:00
2021-08-04 12:10:57 +05:30
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-04-19 22:22:44 -07:00
2021-08-31 13:38:37 -07:00
2020-07-06 19:16:25 +01:00
2021-10-15 08:20:54 -05:00
2021-03-15 19:27:36 +05:30
2020-07-06 19:16:25 +01:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2021-10-15 08:20:54 -05:00
2020-07-06 19:16:25 +01:00
2021-10-15 08:20:54 -05:00
2021-04-19 22:22:44 -07:00
2021-06-18 10:54:19 -05:00
2021-05-05 11:00:35 -05:00
2020-07-06 19:16:25 +01:00
2021-10-15 08:20:54 -05:00