Skip to content

anyulled/photo-statistics

Repository files navigation

Photo Statistics

Quality Gate Status Coverage

Logo

A high-performance command-line tool and desktop application to analyze your photography habits from EXIF metadata.

✨ Features

  • Parallel Processing: Uses rayon for multi-threaded file processing.
  • Resilient: Robust error handling and SQLite storage for metadata caching.
  • Detailed Stats: Analyzes ISO, Camera Models, Lens Models, Shutter Speed, and more.
  • Efficient: Skips already processed files using modification time checks.

🚀 Requirements

  • Rust (stable)
  • ExifTool: Must be installed and available in your system path.
    • MacOS: brew install exiftool
    • Ubuntu: sudo apt-get install libimage-exiftool-perl

🛠️ Installation

cargo install --path .

📖 Usage

photo-statistics [OPTIONS] [DIRECTORY]

Arguments

  • [DIRECTORY]: The directory to scan for photos (default: current directory).

Options

  • -d, --database <PATH>: Path to the SQLite database file (default: photo_stats_cache.db).
  • -h, --help: Print help.
  • -V, --version: Print version.

Example

$ photo-statistics ~/Pictures/Holiday2023
📂 Processing directory: /Users/alrs/Pictures/Holiday2023
🔍 Scanning directory...
📷 Found 1240 files to process.
🚀 Processing metadata...
📊 Generating statistics...

📊 Photos Per Year:
  2023: 1240

📊 Camera Models:
  NIKON Z 6_2: 1240

  NIKKOR Z 28-75mm f/2.8: 1
  NIKKOR Z 70-200mm f/2.8 VR S: 1
  N/A: 33

📊 Shutter Speed:
  1/200: 1
  1/100: 1
  N/A: 33

📊 Flash Usage:
  N/A: 33
  No Flash: 2

📊 Photos Per Year:
  N/A: 35

📊 Aperture:
  N/A: 35

📊 Focal Length:
  N/A: 33
  82 mm: 1
  57 mm: 1

📊 White Balance:
  manual: 34
  auto: 1

✅ Completed in 1.31s

Process finished with exit code 0

🧪 Development

Running Tests

cargo test

Formatting & Linting

cargo fmt
cargo clippy

About

A high-performance Rust tool that scans directories for photos, extracts EXIF metadata (using ExifTool), and generates statistical insights.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors