- Finalize README and make a project description
- Write functions to load and save image files
- Write helper for creating color.RGBA objects, to avoid nil dereferencing
- Write helper for creating palette slice, as Gopy doesn't have abstraction for slice of objects
- Support popular image formats (decode and encode):
- PNG
- JPEG
- WebP
- TIFF (mostly for previews)
- GIF (static)
- BMP
-
Override the wholeMoved topixelmappers
module, as Gopy ignores methods that has return type set as type signaturedither-gopy
-
Support for image manipulation (ideally support native Python libraries, like PIL)There isn't any sufficient way to transport binary data between Go and Python yet. Library users will simply have to apply additional effects before dithering
- Be able to generate wheels for multiple architectures and platforms
- Add support for Windows
Here's how this will be structured:
In this repository, the bindings, a wrapper and everything needed to pack this mess into a usable library package will be stored.dither_go
will contain a x86_64-linux-gnu
copy of bindings already generated (and updated by some small workflow), in order to run test workflows in future.
Bindings for other architectures and platforms will be generated by build_wheel
workflow which (using setup.py
) will override inside a wheel base bindings with those for targeted arch/platform.
- Write more tests and examples
- Generate documentation
- Make bindings fully MyPy compliant
- Override
Config
suffixed andErrorDiffusionMatrix.Offset()
functions - Create an exception system. Functions in Go will return error code and optional error message, and Python wrapper will raise an adequate exception if it receives them
- Support additional image formats:
- JXL
- AVIF
- HEIC/HEIF
- (maybe?; only decode) SVG