Crates.io | rawbit |
lib.rs | rawbit |
version | |
source | src |
created_at | 2024-11-21 03:00:16.131246 |
updated_at | 2024-12-05 20:04:56.331454 |
description | A camera RAW image preprocessor and importer |
homepage | |
repository | https://github.com/cartercanedy/rawbit |
max_upload_size | |
id | 1455638 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
A camera RAW image preprocessor and importer written in Rust.
Rawbit processes raw image files by converting them to the DNG format in parallel, while offering the ability to manipulate metadata and customize file name formatting.
all written in Rust, btw...
I plan on making binary releases available for all major platforms via package managers. In the meantime, there are AUR & crates.io packages available:
You can install rawbit with your preferred AUR helper. Example:
paru -S rawbit
cargo
is available.cargo install rawbit
rawbit --out-dir "./dng" --format "%Y-%m-%d_%H-%M-%S_{image.original_filename}" ./raw/ABC1234.ARW
# or
rawbit -o"./dng" -F"%Y-%m-%d_%H-%M-%S_{image.original_filename}" ./raw/ABC1234.ARW
rawbit --in-dir "./raw" --out-dir "./dng" --format "%Y-%m-%d_{camera.model}_{lens.model}_{image.original_filename}"
# or
rawbit -i"./raw" -o"./dng" -F"%Y-%m-%d_{camera.model}_{lens.model}_{image.original_filename}"
rawbit [OPTIONS] --out-dir <DIR> <--in-dir <DIR>|FILES>
Arguments: [FILES]... individual files to convert
Options: -i, --in-dir <DIR> directory containing raw files to convert -o, --out-dir <DIR> directory to write converted DNGs -F, --format <FORMAT> filename format of converted DNGs; see https://docs.rs/rawbit for info on syntax -a, --artist <ARTIST> value of the "artist" field in converted DNGs --embed-original embed the original raw image in the converted DNG NOTE: conversion may take considerably longer -j, --n-threads <N> number of threads to use while processing input images, defaults to number of CPUs -q, --quiet quiet output, only emit critical errors -v... increase log verbosity; specify multiple times to increase verbosity -f, --force overwrite existing files, if they exist -h, --help Print help -V, --version Print version
This is the distinguishing feature of rawbit
.
You can insert the date-time information read from the RAW image's metadata using
syntax similar to libc's strftime
.
More information can be found here
Similar to the date/time interpolation, some well-known names in between squirly braces (i.e. "{...}") expands into image-specific EXIF metadata in the filename:
Variable | Description | Example |
---|---|---|
camera.make |
Camera make | |
camera.model |
Camera model | |
camera.shutter_speed |
Shutter speed used to take the image | |
camera.iso |
Sensor sensitivity (ISO) used to take the image | |
lens.make |
Lens make | |
lens.model |
Lens model | |
lens.f_stop |
Lens aperture F stop value use to take the image | |
image.original_filename |
Image's original filename. Automatically inserted if not specified in the original format string |
Note:
More metadata fields are a WIP, more to come soon...
dnglab
?dnglab convert
is extremely versatile and robust, but my main motivation for developing rawbit
was to enable a more flexible batch DNG conversion/import workflow with entirely free (as in freedom) software enabling it.
This project utilizes the same library that powers DNGLab, so I owe a huge thanks to the DNGLab/Rawler team for their awesome work that made this project possible.
DNGLab/Rawler: Rust-native RAW image manipulation tools from the ground-up
rayon/tokio: For making fearless concurrency a peice of cake
Adam Perkowski: Contributing CI and package manager support