https://github.com/agvxov/plumblism
Plumblism is a PBMplus image file processing library in C.
https://github.com/agvxov/plumblism
c image image-processing image-processing-library library pbm
Last synced: 12 months ago
JSON representation
Plumblism is a PBMplus image file processing library in C.
- Host: GitHub
- URL: https://github.com/agvxov/plumblism
- Owner: agvxov
- Created: 2025-06-11T19:35:44.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-06-11T20:33:51.000Z (12 months ago)
- Last Synced: 2025-06-11T21:53:23.449Z (12 months ago)
- Topics: c, image, image-processing, image-processing-library, library, pbm
- Language: C
- Homepage:
- Size: 51.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Plumblism
> Image processing with brain damage.
Plumblism is a PBMplus image file processing library in C.
## Introduction to PBMplus
PBMplus is a family of closely related image file formats.
Their core design is identical,
they differ in either being ASCII/binary
and or B&W/greyscale/RGB.
The 6 combinations make up the family.
It is safe to say that PBMplus has the simplest structure imaginable.
Put simply, they are arrays of color values.
No compression, no color tables, no whatever the hell is BMP is doing.
If you would like to learn the exacts,
consult the documentation.
While the original use case has been long deprecated (email attachments),
due to its simplicity, the format remains useful.
For example, tile maps for simple purposes or rapid prototyping.
> [!TIP]
> GIMP supports PBMplus.
## API
The [header file](source/plumblism.h) has been extensively commented.
Consult it for documentation.
## Compiling
* Plumblism has no dependencies
* Plumblism is standard C99
* a classic UNIX tool-chain is required
Invoking `make` will produce both a static and dynamic library.
You could also just copy the source files.
## Related work
* [https://netpbm.sourceforge.net/doc/index.html](https://netpbm.sourceforge.net/doc/index.html) original proper implementation
* [https://github.com/nkkav/libpnmio](https://github.com/nkkav/libpnmio) the implementation I wanted to use, then patch, but ended up rewritting