An interactive command line tool to manipulate one-bit bitmap graphics! Built in Rust.
- Clone this repo;
cargo run!
Important
Binaries for macOS (they might work on Linux) are available in GitHub Releases.
To get help, run IPCLI and type help, then press enter.
Tip
Type h instead to get help faster!
The output should be:
IMAGE PAINT COMMAND LINE INTERFACE
Manipulate one-bit bitmap graphics from the command-line.
USAGE
ipcli [w: number] [h: number] [color: {t | f}]
Creates a new image of the specified dimensions and color.
ipcli -s [path: file path]
Generates the image from the script at `path` and start the IPCLI.
COMMANDS
help | h: Prints this message;
write [x] [y] [c] | w: Sets the pixel at (x, y) to color `c`;
fill [x] [y] [c] | f: Flood fills from (x, y) with color `c`;
resize [w] [h] | r: Resizes the image to `w` * `h`;
clear [c] | c: Fills the image with color `c`;
invert | i: Inverts the image;
quit | q: Exits the program;
---
draw_rectangle [x] [y] [w] [h] [c] | dr: Draws a `w` * `h` rectangle of color `c` at (x, y);
draw_line [x1] [y1] [x2] [y2] [c] | dl: Draws a line of color `c` from (x1, y1) to (x2, y2);
draw_curve [x0] [y0] [x1] [y1] [x2] [y2] [c] | db: Draws a quadratic Bézier curve with control points (x0, y0), (x1, y1), (x2, y2) with color `c`;
draw_circle [x] [y] [r] [c] | dc: Draws a circle of radius `r` with centre (x, y) with color `c`;
---
draw_rectangle_outline [x] [y] [w] [h] [c] | dro: Draws the outline of a `w` * `h` rectangle at (x, y) with color `c`;
draw_circle_outline [x] [y] [r] [c] | dco: Draws the outline of a circle of radius `r` with centre (x, y) with color `c`;
---
dump | d: Dumps all executed commands as a script to stdout.
ABBREVIATIONS
x: x-coordinate (must be positive or zero);
y: y-coordinate (must be positive or zero);
w: width (must be positive or zero);
h: height (must be positive or zero);
r: radius (must be positive or zero);
c: color (must be either `t` or `f`);
---
t: shorthand for `true`;
f: shorthand for `false`.
SCRIPTING
The IPCLI supports basic scripting. Scripts are plain text files (the `.ipcli` extension is recommended) containing a list of commands to execute, separated by semicolons. See the documentation on the `dump` command and the `-s` option. Sample scripts are available in the source repository.
- Add a
draw_linecommand; - Add a
draw_circlecommand; - Add a
draw_curvecommand; - Add scripting support.