21 unstable releases

0.11.0 Dec 9, 2025
0.10.0 Nov 20, 2025
0.9.2 Jun 22, 2025
0.9.1 Oct 22, 2024
0.2.0 Oct 23, 2020

#33 in Command-line interface

Download history 3125/week @ 2025-09-23 3020/week @ 2025-09-30 2920/week @ 2025-10-07 3464/week @ 2025-10-14 3297/week @ 2025-10-21 3067/week @ 2025-10-28 3453/week @ 2025-11-04 3527/week @ 2025-11-11 3656/week @ 2025-11-18 4984/week @ 2025-11-25 4486/week @ 2025-12-02 4847/week @ 2025-12-09 3591/week @ 2025-12-16 2360/week @ 2025-12-23 2566/week @ 2025-12-30 3874/week @ 2026-01-06

13,155 downloads per month
Used in 68 crates (63 directly)

MIT and LGPL-3.0-or-later

76KB
1.5K SLoC

viuer

ci

Display images in the terminal with ease.

viuer is a Rust library that makes it easy to show images in the terminal. It has a straightforward interface and is configured through a single struct. The default printing method is through lower half blocks ( or \u2585). However some custom graphics protocols are supported. They result in full resolution images being displayed in specific environments:

For a demo of the library's usage and example screenshots, see viu.

Usage

With the default features, only image::DynamicImage can be printed:

use viuer::{print, Config};

let conf = Config {
    // Start from row 4 and column 20.
    x: 20,
    y: 4,
    ..Default::default()
};

let img = image::DynamicImage::ImageRgba8(image::RgbaImage::new(20, 10));
print(&img, &conf).expect("Image printing failed.");

And with the print-file feature, viuer can work with files, too:

use viuer::{print_from_file, Config};

let conf = Config {
    // Set dimensions.
    width: Some(80),
    height: Some(25),
    ..Default::default()
};

// Display `img.jpg` with dimensions 80×25 in terminal cells.
// The image resolution will be 80×50 because each cell contains two pixels.
print_from_file("img.jpg", &conf).expect("Image printing failed.");

Docs

Find all the configuration options in the full documentation.

Dependencies

~11–19MB
~356K SLoC