Skip to content
/ MinImage Public

Interactive procedural concurrent image generator written in C# using a native library written in C++.

Notifications You must be signed in to change notification settings

R4ken/MinImage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MinImage

Interactive procedural concurrent image generator written in C# using a native library written in C++.

Console output Generated random checker Generated gradient

Let's start with an...

Example:

The user can enter a generating command:

  • Generate n width height

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 width height
  • 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"

Command chains

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

Progress reporting

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%

Abort

When a command chain is being processed, the user can press x to stop all chains

Commands

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.

Additional remarks

Project was made for Programming 3 - Advanced classes

About

Interactive procedural concurrent image generator written in C# using a native library written in C++.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •