Interactive procedural concurrent image generator written in C# using a native library written in C++.
Let's start with an...
The user can enter a generating command:
- Generate
nwidthheight
The program creates n images whose size is widthxheight pixels and calls an external library to fill them with random patters.
The result of the command can then be piped into processing commands such as
- Blur
widthheight - Output
filename_prefix
that modify it or output the result into a file:
Generate 10 1024 1024 | Blur 4 4 | Output Image
The following chain of commands generates 10 1024x1024 images, blurs them with radius 4 vertically and horizontally and saves them as "Image1.jpeg", "Image2.jpeg", ... , "Image10.jpeg"
The user enters a generating command and its arguments, followed by 0 or more processing commands and their respective arguments. Commands are separated by the | (pipe) character.
generating_command arg1 arg2 | processing_command1 | processing_command2 arg1 arg2
Execution progress of each image in the chain is shown separately. Progress of each command in the chain is also separreted visually. Output is colorized for better readability.
Example output:
[######|######|###---|------|------] 50%
[######|######|##----|------|------] 47%
[######|######|###---|------|------] 50%
[######|######|######|------|------] 60%
When a command chain is being processed, the user can press x to stop all chains
Available commands:
- Input [path]
Loads an image located in given path - Generate [n] [width] [height]
Generates n random images with given width and height of pixels - RandomGradient [n] [width] [height]
Generates n images with random gradients of random colors with given width and height of pixels - RandomChecker [n] [width] [height]
Generates n images consisitng of 10x10 checkers with random colors with given width and height of pixels - RandomNoise [n] [width] [height]
Generates n images with random noise with given width and height of pixels - Blur [w] [h]
Applies w x h blur on image - RandomCircles [n] [r]
Draws n randomly placed circles (or ellipses) of radius r on image. r is normalized real value between 0 and 1 - Room [x1] [y1] [x2] [y2]
Draws a rectangle with top left coordinates of (x1, y1), and bottom tight coordinates of (x2, y2). All arguments are normalized real values between 0 and 1 - ColorCorrection [red] [green] [blue]
Applies color correction on image. All arguments are normalized real values between 0 and 1 - GammaCorrection [gamma]
Applies gamma correction on image. gamma is normalized real value between 0 and 1 - Inverse Inverts colors of an image
- GentleVignette [level]
Applies gentle effect of vignette on image with given level of strength. level is normalized real value between 0 and 1 - Saturation [level]
Changes level of saturation of colors on image. level is normalized real value between 0 and 1 - Output [path]
Saves an image into a given path in an jpeg format. When multiple output images are recieved, path is extended with an image number.
Project was made for Programming 3 - Advanced classes


