#convert-images #image #art #ansi #post-processing #command-line-tool #irc

app img2irc-rs

CLI utility to convert images to halfblock ANSI or IRC art with various optional post-processing filters

2 stable releases

1.0.5 Oct 1, 2024
1.0.4 Jun 8, 2024

#436 in Command line utilities

Download history 2/week @ 2024-09-18 88/week @ 2024-09-25 102/week @ 2024-10-02 13/week @ 2024-10-09 5/week @ 2024-10-16

65 downloads per month

GPL-3.0-only

37KB
700 lines

img2irc (1.0.5)

img2irc preview

img2irc is a utility which converts images to half or quarterblock irc/ansi art, with a lot of post-processing filters

halfblock means that each row will contain two rows worth of pixels, effectively doubling the vertical resolution

quarterblock (experimental) means that each row will contain two rows worth of pixels, and each column will contain two columns worth of pixels, quadrupling the resolution

the irc mode has 99 colours, the ansi mode has 256, ansi24 has 16777216

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)

    if you like this project, i would appreciate you giving it a vote on the aur!

    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 none
--irc irc render type true
--ansi 8-bit ansi render type false
--ansi24 24-bit ansi render type false
--qb use quarterblocks (experimental) false
-w, --width <WIDTH> output image width in columns 50
-b, --brightness=<BRIGHTNESS> adjust brightness (-255 to 255) 0
-c, --contrast=<CONTRAST> adjust contrast (-255 to 255) 0
-s, --saturation=<SATURATION> adjust saturation (-255 to 255) 0
-H, --hue <HUE> rotate hue (0 to 360) 0
-g, --gamma <GAMMA> adjust gamma (0 to 255) 0
--dither <DITHER> dithering (1 to 8) 0
--pixelize <PIXELIZE> pixelize pixel size 0
--gaussian-blur <GAUSSIAN_BLUR> gaussian blur radius 0
--oil <OIL> oil ("[RADIUS],[INTENSITY]")
--grayscale converts image to black and white
--nograyscale exclude grayscale colours from the palette
--halftone made up of small dots creating a continuous-tone illusion
--sepia brownish, aged appearance like old photographs
--normalize adjusts brightness and contrast for better image quality
--noise random variations in brightness and color like film grain
--emboss gives a raised, 3d appearance
--box-blur smoothed appearance like frosted glass
--identity no modifications, unchanged image
--laplace enhances edges and boundaries in an image
--noise-reduction reduces noise for a cleaner, clearer image
--sharpen increases clarity and definition, making edges and details more distinct
--cali cool blue tone with increased contrast
--dramatic high contrast and vivid colors for a dramatic effect
--firenze warm, earthy tones reminiscent of tuscan landscapes
--golden warm, golden glow like sunset light
--lix high-contrast black and white appearance with increased sharpness
--lofi low-fidelity, retro appearance like old photographs or film
--neue clean, modern appearance with neutral colors and simple design
--obsidian dark, monochromatic appearance with black and gray shades
--pastel-pink soft, delicate pink tint like pastel colors
--ryo bright, high-contrast appearance with vivid colors and sharp details
--invert colors are inverted, opposite on the color wheel
--frosted-glass blurred, frosted appearance as if viewed through semi-transparent surface
--solarize strange, otherworldly appearance with inverted colors and surreal atmosphere
--edge-detection highlights edges and boundaries in an image

Dependencies

~26–39MB
~604K SLoC