img2irc/README.md
2024-12-15 07:33:48 -08:00

106 lines
8.5 KiB
Markdown

# img2irc (1.1.0)
![img2irc preview](https://i.imgur.com/0omljq5.png)
img2irc is a utility which converts images to half or quarterblock irc/ansi art, with a lot of post-processing filters
`halfblock` mode increases the vertical resolution, doubling the total resolution for a given size
`quarterblock` mode increases both the vertical and horizontal resolution by twofold, quadrupling the total resolution for a given size
`braille` mode uses 2x4 dot patterns to represent pixels, increasing resolution eightfold
`irc` mode has 99 colours, (6.62-bit)
`ansi` mode has 256 colours (8-bit)
`ansi24` has 16777216 colours (24-bit)
# how to install
- ### download the linux binary
statically linked with musl, works on all x86_64 linux platforms
cd /tmp
wget https://github.com/waveplate/img2irc/releases/download/v1.0.4/img2irc-1.0.4-linux-x86_64.tar.gz
sudo tar -xzf img2irc-1.0.4-linux-x86_64.tar.gz -C /usr/local/bin --strip-components=1 img2irc-1.0.4/img2irc
rm -rf img2irc-1.0.4-linux-x86_64.tar.gz
- ### install with `yay` (arch linux)
>[!NOTE]
>if you like this project, i would appreciate you giving it a vote on the [aur](https://aur.archlinux.org/packages/img2irc)!
yay -S img2irc
- ### install with `cargo`
cargo install img2irc-rs
the binary will be installed to `~/.cargo/bin/img2irc`
# usage
`img2irc <URL or PATH> [OPTIONS]`
| option | description | default value |
|----------------------------------------|---------------------------------------------------------------|---------------|
| image | image url or file path | required |
| -w, --width | output image width in columns | auto |
| -h, --height | output image height in rows | auto |
| --scale | scaling factors (x:y, e.g., "2:2") | none |
| --aspect | final aspect ratio (x:y, e.g., "2:1") | none |
| --crop | crop image ("x1,y1,x2,y2") | none |
| --filter | sampling filter | nearest |
| --rotate | rotate degrees | 0 |
| --fliph | flip horizontal | false |
| --flipv | flip vertical | false |
| --irc | use irc99 colours | false |
| --ansi | use 8-bit ansi colours | false |
| --ansi24 | use 24-bit ansi colours | false |
| --braille | use braille pixels | false |
| --hb, --halfblock | use halfblock pixels | true |
| --qb, --quarterblock | use quarterblocks pixels | false |
| -b, --brightness | adjust brightness (0 = no change) | 0.0 |
| -c, --contrast | adjust contrast (0 = no change) | 0.0 |
| -g, --gamma | adjust gamma (0 to 255) | 0.0 |
| -s, --saturation | adjust saturation (0 = no change) | 0.0 |
| -u, --hue | rotate hue (0 to 360) | 0.0 |
| -i, --invert | colors are inverted, opposite on the color wheel | false |
| -d, --dither | dithering (1 to 8) | 0 |
| -B, --luma-brightness | adjust luma brightness (braille only) | 0.0 |
| -C, --luma-contrast | adjust luma contrast (braille only) | 0.0 |
| -G, --luma-gamma | adjust luma gamma (braille only) | 0.0 |
| -S, --luma-saturation | adjust luma saturation (braille only) | 0.0 |
| -I, --luma-invert | luminance is inverted (braille only) | false |
| --colorspace | colourspace (hsl, hsv, hsluv, lch) | hsv |
| --grayscale | converts image to black and white | false |
| --nograyscale | exclude grayscale colours from the palette | false |
| --pixelize | pixelize pixel size | 0 |
| --boxblur | simple average of all the neighboring pixels surrounding one | false |
| --gaussianblur | gaussian blur radius | 0 |
| --oil | oil filter ("[radius],[intensity]") | none |
| --halftone | made up of small dots creating a continuous-tone illusion | false |
| --sepia | brownish, aged appearance like old photographs | false |
| --normalize | adjusts brightness and contrast for better image quality | false |
| --noise | random variations in brightness and color like film grain | false |
| --emboss | gives a raised, 3d appearance | false |
| --identity | no modifications, unchanged image | false |
| --laplace | enhances edges and boundaries in an image | false |
| --denoise | reduces noise for a cleaner, clearer image | false |
| --sharpen | increases clarity and definition, making edges and details more distinct | false |
| --cali | cool blue tone with increased contrast | false |
| --dramatic | high contrast and vivid colors for a dramatic effect | false |
| --firenze | warm, earthy tones reminiscent of tuscan landscapes | false |
| --golden | warm, golden glow like sunset light | false |
| --lix | high-contrast black and white appearance with increased sharpness | false |
| --lofi | low-fidelity, retro appearance like old photographs or film | false |
| --neue | clean, modern appearance with neutral colors and simple design | false |
| --obsidian | dark, monochromatic appearance with black and gray shades | false |
| --pastelpink | soft, delicate pink tint like pastel colors | false |
| --ryo | bright, high-contrast appearance with vivid colors and sharp details | false |
| --frostedglass | blurred, frosted appearance as if viewed through semi-transparent surface | false |
| --solarize | strange, otherworldly appearance with inverted colors and surreal atmosphere | false |
| --edgedetection | highlights edges and boundaries in an image | false |