The cli option `--script <operations>` provides a declarative way to apply image operations on an image.
The order in which these operations are applied is left-to-right.

Supported operations:

|-------------------|-------------------------|------------------|
| operations        | syntax                  | As of version    |
|-------------------|-------------------------|------------------|
|blur               | `blur <uint>`           | 0.5.0            |
|brighten           | `brighten <int>`        | 0.7.0            |
|contrast           | `contrast <fp>`         | 0.7.0            |
|filter3x3          | `filter3x3 <args9>`     | 0.7.0            |
|flip horizontal    | `fliph`                 | 0.5.0            |
|flip vertical      | `flipv`                 | 0.5.0            |
|gray scale         | `grayscale`             | 0.7.0            |
|hue rotate         | `huerotate <int>`       | 0.7.0            |
|invert             | `invert`                | 0.7.0            |
|resize             | `resize <uint> <uint>`  | 0.5.0            |
|rotate90           | `rotate90`              | 0.7.0            |
|rotate180          | `rotate180`             | 0.7.0            |
|rotate270          | `rotate270`             | 0.7.0            |
|unsharpen          | `unsharpen <fp> <int>`  | 0.7.0            |
|-------------------|-------------------------|------------------|

table legend:

<uint> means any 32 bit unsigned integer is required as parameter input.
<int> means any 32 bit signed integer is required as parameter input.
<fp> means any 32 bit floating point number is required as parameter input.
<args9> means `<fp> <fp> <fp> | <fp> <fp> <fp> | <fp> <fp> <fp>` where the `|` separator is optional.
    If the separator is used, white space should surround the separator.
    The separators can only be used like in the example,
        thus only one separator after each of the first two triplets.
    So, `filter3x3 1.0 0.9 0.8 | 0.7 0.6 0.5 | 0.4 0.3 0.2`
        and `filter3x3 1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2` are both valid.
    But `filter3x3 1.0 0.9 0.8 0.7 0.6 0.5 | 0.4 0.3 0.2`
        or `filter3x3 1.0 0.9 | 0.8 | 0.7 0.6 0.5 | 0.4 0.3 0.2` are not.


Operation separators (';') are optional.

Example 1: sic input.png output.png --script "resize 250 250; blur 5; huerotate -30"
Example 2: sic input.png output.jpg --script "flipv resize 10 5 blur 100 grayscale"
Example 3: sic input.png output.jpg --script "filter3x3 1.0 0.9 0.8 | 0.7 0.6 0.5 | 0.4 0.3 0.2; flipv; invert"


Help pages:
* Each script command has a help page which might provide some additional information.
* Display the help page by running `sic -H <script-operation>` where `<script-operation>` is an operation from the
  operations column in the table above.

---
