All Projects โ†’ dnglab โ†’ dnglab

dnglab / dnglab

Licence: LGPL-2.1 license
Camera RAW to DNG file format converter

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to dnglab

QuickRawPicker
๐Ÿ“ท QuickRawPicker is a free and open source program that lets you cull, pick or rate raw photos captured by your camera. It is also compatible with the XMP sidecar file used by Adobe Bridge/Lightroom/Darktable or PP3 sidecar file used by Rawtherapee.
Stars: โœญ 26 (-74.76%)
Mutual labels:  photography, dng, raw, raw-image
Cameraview
๐Ÿ“ธ A well documented, high-level Android interface that makes capturing pictures and videos easy, addressing all of the common issues and needs. Real-time filters, gestures, watermarks, frame processing, RAW, output of any size.
Stars: โœญ 4,137 (+3916.5%)
Mutual labels:  raw, raw-image
PyDNG
Create Adobe DNG RAW files using Python. Works with any Bayer RAW Data including native support for Raspberry Pi cameras.
Stars: โœญ 0 (-100%)
Mutual labels:  dng, raw
libopenraw
libopenraw: RAW file parsing and processing library (mirror and WiP)
Stars: โœญ 42 (-59.22%)
Mutual labels:  photography, raw
json2table
Converts JSON to an HTML table
Stars: โœญ 52 (-49.51%)
Mutual labels:  converter
objectify-css
CLI for converting CSS rules to JavaScript style objects
Stars: โœญ 46 (-55.34%)
Mutual labels:  converter
cpc
Text calculator with support for units and conversion
Stars: โœญ 89 (-13.59%)
Mutual labels:  converter
Mpv Webm
Simple WebM maker for mpv, with no external dependencies.
Stars: โœญ 234 (+127.18%)
Mutual labels:  converter
converter-go
Convert AsyncAPI documents from older to newer versions with Golang
Stars: โœญ 17 (-83.5%)
Mutual labels:  converter
bank2ynab
Easily convert and import your bank's statements into YNAB. This project consolidates other conversion efforts into one universal tool.
Stars: โœญ 197 (+91.26%)
Mutual labels:  converter
slackdown
A simple Slack message text formatting to HTML code converter.
Stars: โœญ 27 (-73.79%)
Mutual labels:  converter
guepard
flash to html5 converter, as3 to javascript translator
Stars: โœญ 58 (-43.69%)
Mutual labels:  converter
meiupic
็ฎ€ๆดๅฅฝ็”จ็š„ๅคš็”จๆˆทๅ›พ็‰‡็คพๅŒบใ€‚
Stars: โœญ 165 (+60.19%)
Mutual labels:  photography
mdconv
A tool to convert markdown to html.
Stars: โœญ 38 (-63.11%)
Mutual labels:  converter
.com
Digital garden built using Next13, Typescript, and a bunch of goodies
Stars: โœญ 186 (+80.58%)
Mutual labels:  photography
BatchEncoder
BatchEncoder is an audio files conversion software.
Stars: โœญ 145 (+40.78%)
Mutual labels:  converter
Audiblex
Audible audio book converter which actually works!
Stars: โœญ 26 (-74.76%)
Mutual labels:  converter
CaptureOneScripts
A collection of AppleScripts for use with Capture One
Stars: โœญ 31 (-69.9%)
Mutual labels:  photography
java-xml-to-json
๐Ÿ‘พ convert XML to a structure-preserving JSON representation
Stars: โœญ 15 (-85.44%)
Mutual labels:  converter
csv2vcf
๐Ÿ”ง Simple script in python to convert CSV files to VCF
Stars: โœญ 66 (-35.92%)
Mutual labels:  converter

DNGLab - A camera RAW to DNG file format converter

CI Matrix

Command line tool to convert camera RAW files to Digital Negative Format (DNG).

It is currently in alpha state, so don't expect a polished and bugfree application. Please report bugs in our issue tracker.

Installation

There are pre-built binary packages for each release which can be downloaded from the asset section under latest release. The .deb packages are for Debian based systems (amd64 and arm64), which can be installed with dpkg -i dnglab_x.x.x_amd64.deb. For non-Debian systems, you can use the single-binary file, for example ./dnglab_linux_x64 convert IMG_1234.CR2 IMG_1234.dng.

Windows is not officially supported, but the release assets contains a dnglab-win-x64_vx.x.x.zip file with pre-built Windows binary. Please be aware that this build is untested.

Build from source

Dnglab is written in Rust, so you can compile it by your own on your target machine. You need the Rust toolchain installed on your machine, see https://rustup.rs/ for that. Once the toolchain is installed, you can simply compile Dnglab with:

git checkout https://github.com/dnglab/dnglab.git
cd dnglab
cargo build --release

The dnglab binary is found at ./target/release/dnglab.

Examples

Convert a single file:

dnglab convert IMG_1234.CR3 IMG_1234.DNG

Convert whole directory:

dnglab convert ~/DCIM/100EOS ~/filmrolls/photos-france

Supported cameras and file formats

For a list of supported cameras please see SUPPORTED_CAMERAS.md.

Supported raw file formats

Manufacturer Format Supported Remarks
ARRI ARI โœ… Yes
Canon CR3 โœ… Yes CR3_STATE.md
Canon CR2 โœ… Yes
Canon CRW โœ… Yes
Epson ERF โœ… Yes
Fujifilm RAF โœ… Yes
Hasselblad 3FR โœ… Yes
Kodak KDC โœ… Yes
Kodak DCS โœ… Yes
Kodak DCR โœ… Yes
Leaf IIQ โœ… Yes
Leaf MOS โœ… Yes
Mamiya MEF โœ… Yes
Minolta MRW โœ… Yes
Nikon NEF โœ… Yes
Nikon NRW โœ… Yes
Olympus ORF โœ… Yes
Panasonic/Leica RW2 โœ… Yes
Pentax/Ricoh PEF โœ… Yes
Phase One IIQ โœ… Yes
Samsung SRW โœ… Yes
Sony ARW โœ… Yes
Sony SRF โœ… Yes
Sony SR2 โœ… Yes

Supported DNG features

  • DNG lossless compression (LJPEG-92)

Command line help

convert subcommand

dnglab-convert
Convert raw image(s) into dng format

USAGE:
    dnglab convert [OPTIONS] <INPUT> <OUTPUT>

ARGS:
    <INPUT>     Input file or directory
    <OUTPUT>    Output file or existing directory

OPTIONS:
        --artist <artist>
            Set the artist tag

    -c, --compression <compression>
            Compression for raw image [default: lossless] [possible values: lossless, none]

        --crop <crop>
            DNG default crop [default: best] [possible values: best, activearea, none]

    -d
            turns on debugging mode

        --dng-preview <preview>
            DNG include preview image [default: true]

        --dng-thumbnail <thumbnail>
            DNG include thumbnail image [default: true]

        --embed-raw <embedded>
            Embed the raw file into DNG [default: true]

    -f, --override
            Override existing files

    -h, --help
            Print help information

        --image-index <index>
            Select a specific image index (or 'all') if file is a image container [default: 0]

        --ljpeg92-predictor <predictor>
            LJPEG-92 predictor [default: 1] [possible values: 1, 2, 3, 4, 5, 6, 7]

    -r, --recursive
            Process input directory recursive

    -v
            Print more messages

analyze subcommand

dnglab-analyze
Analyze raw image

USAGE:
    dnglab analyze [OPTIONS] <FILE>

ARGS:
    <FILE>    Input file

OPTIONS:
    -d                          turns on debugging mode
        --full-pixel            Write uncompressed full pixel data to STDOUT
    -h, --help                  Print help information
        --json                  Format metadata as JSON
        --meta                  Write metadata to STDOUT
        --preview-checksum      Write MD5 checksum of preview pixels to STDOUT
        --preview-pixel         Write uncompressed preview pixel data to STDOUT
        --raw-checksum          Write MD5 checksum of raw pixels to STDOUT
        --raw-pixel
        --srgb                  Write sRGB 16-bit TIFF to STDOUT
        --structure             Write file structure to STDOUT
        --summary               Write summary information for file to STDOUT
        --thumbnail-checksum    Write MD5 checksum of thumbnail pixels to STDOUT
        --thumbnail-pixel       Write uncompressed preview pixel data to STDOUT
    -v                          Print more messages
        --yaml                  Format metadata as YAML

With analyze, you can get a full dump of the internal file structure as YAML or JSON. With JSON output, it's possible to filter and transform the data with jq. For example, to get the cfa_layout from the CMP1 box for CR3 files, you can write:

find /cr3samples/ -type f -name "*.CR3" -exec dnglab analyze --structure '{}' --json \; | \
  jq ". | { file: .file.fileName, cfa_layout: .format.cr3.moov.trak[1].mdia.minf.stbl.stsd.craw.cmp1.cfa_layout}"

The output is:

{
  "file": "Canon EOS 90D_CRAW_ISO_250_nocrop_nodual.CR3",
  "cfa_layout": 1
}
{
  "file": "Canon EOS 90D_CRAW_ISO_100_nocrop_nodual.CR3",
  "cfa_layout": 1
}

extract subcommand

dnglab-extract
Extract embedded original Raw from DNG

USAGE:
    dnglab extract [OPTIONS] <FILE> <INPUT> <OUTPUT>

ARGS:
    <FILE>      Input file
    <INPUT>     Input file or directory
    <OUTPUT>    Output file or existing directory

OPTIONS:
    -d                  turns on debugging mode
    -f, --override      Override existing files
    -h, --help          Print help information
    -r, --recursive     Process input directory recursive
        --skipchecks    Skip integrity checks
    -v                  Print more messages

Contribute samples

Please see our guide: CONTRIBUTE_SAMPLES.md.

FAQ

Why a DNG tool if there is already something from Adobe?

The DNG converter from Adobe is free (at cost), but not free in terms of free software. Nobody can add or fix camera support except of Adobe. And it has no support for Linux. That's why I've started writing my own little DNG swiss army knife.

Why should I use DNG instead of RAW?

Never ask. If you need DNG you will know.

Will camera/format (...) be added?

Well, depends on developer resources.

Is a GUI in planning?

Yes, DNGLab should get a GUI in near future.

Credits

Special thanks goes to:

Without the support and engagement from these people the development of dnglab would not have been possible.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].