A pure Elixir library for reading and writing PNG and JPEG images without external dependencies.
Imagineer is a native Elixir image processing library that parses and writes image files entirely in Elixir, eliminating the need for external C bindings or system dependencies. It provides a clean, functional interface for working with image data directly within the Elixir ecosystem, currently focusing on PNG support with JPEG in development.
Elixir developers who need to process images without relying on external system dependencies, such as those building web applications, image manipulation tools, or embedded systems where portability is critical.
Developers choose Imagineer for its pure Elixir implementation, ensuring portability and ease of deployment, and its structured image data output that allows direct pixel access and manipulation using familiar Elixir data types.
Image processing in Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
No external C bindings or system dependencies, ensuring portability and ease of deployment, as highlighted in the README's core philosophy.
Returns images as accessible Elixir data types with fields like width, height, and pixel arrays, allowing intuitive manipulation directly in Elixir.
Exposes pixel data in formats like RGB tuples, enabling programmatic image manipulation, as demonstrated in the pixel array examples.
Supports converting images back to binary format via to_binary for saving or transmission, integrating seamlessly with Elixir pipelines.
Currently only handles a subset of PNGs, with JPEG in development, restricting use for common image types as admitted in the README.
Pre-1.0 releases may include backwards incompatible changes, making it unreliable for production, per the status warning.
Acknowledges not all PNG specifications are supported, requiring community help to handle edge cases, which adds overhead for users.