Skip to content

TUI-based Exif Metadata viewer and editor written in Rust

License

Notifications You must be signed in to change notification settings

itsrainingmani/bresson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bresson

Bresson is an EXIF Metadata Processing TUI (Terminal User Interface) built in Rust using the Ratatui immediate-mode TUI library.

Bresson was initially conceived as an exploration of terminal interfaces and immediate-mode rendering during my Winter 2' 2024 Batch at the Recurse Center.

bresson

What does it do?

Bresson allows you to inspect & modify the Exif metadata for a given image inside your terminal.

Within TUI Mode, all of the metadata is displayed inside a table and with the appropriate units for relevant fields.

If the provided image has any GPS data, an ASCII rendering of Earth will be shown with the GPS co-ordinates highlighted!

There is also support for rendering the image thumbnail via ratatui-image but this is highly dependent on what image backends are supported by your terminal. Recommended terminals are -

  • XTerm
  • Foot
  • kitty
  • Wezterm
  • iTerm2
  • Ghostty

Usage

Here is a list of Keybinds for TUI mode -

Keybind Description
r Randomize the highlighted field
R Randomize all fields
c Clear selected metadata
C Clear all metadata
u Undo change
U Undo all changes / Restore
t | T Toggle between displaying Thumbnail and Globe
s | S Save a copy of the modified metadata
g | G Toggle Globe Visibility
<Spc> Toggle Globe Rotation
? Show/Dismiss Keybind Info
q | <Esc> Exit the app

Metadata that can be randomized

  • Make
  • Model
  • DateTime
  • DateTimeOriginal
  • DateTimeDigitized
  • ExposureTime
  • FNumber
  • PhotographicSensitivity
  • MeteringMode
  • ColorSpace
  • GPSLatitude
  • GPSLongitude
  • GPSLatitudeRef
  • GPSLongitudeRef

Running Bresson

Currently Bresson is in alpha development. To build Bresson, please clone the repository to your local environment and then running the following command -

$ cargo run -- <PATH_TO_IMAGE>

This will build Bresson locally and then run it (in debug mode).

Future Features

  • Randomizing more metadata fields
  • Editing metadata directly
  • Displaying the Thumbnail
  • Configuration File
  • Alternate Stylesheets
  • DSL for defining modifications
  • Batch processing a directory containing multiple images
  • File Picker interface

About

TUI-based Exif Metadata viewer and editor written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages