#jpeg #structure #dump

jfifdump

Read and dump structure of a jpeg file

10 releases (5 breaking)

0.6.0 Oct 5, 2024
0.5.1 Jan 30, 2024
0.5.0 Oct 9, 2023
0.3.2 Feb 7, 2023
0.2.0 Jun 8, 2021

#76 in Images

Download history 47758/week @ 2024-11-30 67146/week @ 2024-12-07 92734/week @ 2024-12-14 15991/week @ 2024-12-21 37093/week @ 2024-12-28 88972/week @ 2025-01-04 124607/week @ 2025-01-11 128859/week @ 2025-01-18 175881/week @ 2025-01-25 175830/week @ 2025-02-01 192813/week @ 2025-02-08 117233/week @ 2025-02-15 87774/week @ 2025-02-22 395979/week @ 2025-03-01 357730/week @ 2025-03-08 338698/week @ 2025-03-15

1,201,121 downloads per month
Used in 5 crates (2 directly)

MIT/Apache

40KB
965 lines

JFIF-Dump

docs.rs badge crates.io badge Rust

Read and dump structure of a jpeg file.

This crate can be used as a library or as a command line utility.

Installation

$ cargo install jfifdump-cli

Usage

$ jfifdump image.jpeg

Command-line options

Read and dump structure of a jpeg file

Usage: jfifdump [OPTIONS] <INPUT>

Arguments:
  <INPUT>  Jpeg file to use

Options:
  -f, --format <FORMAT>  Output format [default: text] [possible values: text, json]
  -v, --verbose          Make output more verbose
  -h, --help             Print help
  -V, --version          Print version

Using jfifdump as a library

To use jfifdump as a library add the following to your Cargo.toml dependencies:

jfifdump = "0.6"

Example: Print image dimensions

use jfifdump::{Reader, SegmentKind, JfifError};
use std::fs::File;
use std::io::BufReader;

fn main() -> Result<(), JfifError> {
    let file = File::open("some.jpeg")?;

    let mut reader = Reader::new(BufReader::new(file))?;

    loop {
        match reader.next_segment()?.kind {
            SegmentKind::Eoi => break,
            SegmentKind::Frame(frame) => {
                println!("{}x{}", frame.dimension_x, frame.dimension_y);
                break;
            }
            _ => {
                // Ignore other segments
            }
        }
    }

    Ok(())
}

License

This project is licensed under either of

Contribution

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

Dependencies

~37KB