4 releases (2 breaking)

✓ Uses Rust 2018 edition

new 0.3.2 Mar 20, 2020
0.3.1 Feb 17, 2020
0.3.0 Feb 17, 2020
0.2.0 Dec 17, 2019
0.1.0 Jun 4, 2019

#235 in Embedded development

Download history 126/week @ 2019-12-02 140/week @ 2019-12-09 211/week @ 2019-12-16 281/week @ 2019-12-23 213/week @ 2019-12-30 411/week @ 2020-01-06 497/week @ 2020-01-13 208/week @ 2020-01-20 293/week @ 2020-01-27 185/week @ 2020-02-03 112/week @ 2020-02-10 163/week @ 2020-02-17 110/week @ 2020-02-24 112/week @ 2020-03-02 122/week @ 2020-03-09 140/week @ 2020-03-16

944 downloads per month
Used in 13 crates (2 directly)

MIT/Apache

105KB
2K SLoC

Rust 1.5K SLoC // 0.3% comments Razor 625 SLoC // 0.2% comments

TinyTGA

Build Status Crates.io Docs.rs

Documentation

A small TGA parser designed for embedded, no-std environments but usable anywhere. Beyond parsing the image header, no other allocations are made. A reference to the input image data is kept and slices are returned from it.

Call Tga.into_iter() to get an iterator over individual pixels in the image.

Example

use tinytga::{ImageType, Pixel, Tga, TgaFooter, TgaHeader};

// Include an image from a local path as bytes
let data = include_bytes!("../tests/chessboard_4px_rle.tga");

// Create a TGA instance from a byte slice
let img = Tga::from_slice(data).unwrap();

// Take a look at the header
assert_eq!(
    img.header,
    TgaHeader {
        id_len: 0,
        has_color_map: false,
        image_type: ImageType::RleTruecolor,
        color_map_start: 0,
        color_map_len: 0,
        color_map_depth: 0,
        x_origin: 0,
        y_origin: 4,
        width: 4,
        height: 4,
        pixel_depth: 24,
        image_descriptor: 32,
    }
);

// Take a look at the footer
assert_eq!(
    img.footer,
    Some(TgaFooter {
        extension_area_offset: 0,
        developer_directory_offset: 0
    })
);

// Collect pixels into a `Vec<Pixel>`
let pixels = img.into_iter().collect::<Vec<Pixel>>();

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~710KB
~14K SLoC