DNGLab - a camera RAW to DNG file format converter (with CR3 support) for Linux and other platforms

Hi there,

I want to announce my small project. It’s a raw to dng file format converter, written in Rust.

It currently supports only CR3 raw files (ironic, I know), because that is what I need most. But I want to add as many other formats as possible. It’s in alpha stage, so don’t expect a bug-free ready-to-use application, but for those of us dealing with CR3 raw files it may already help :slight_smile:. You have to build it from source, there are no binary packages yet.

All Canon cameras with CR3 format are supported (R, RP, R5, M50, …) except of CRAW (compressed RAW) files. For a general state of CR3 support please have a look at dnglab/CR3_STATE.md at main · dnglab/dnglab · GitHub.

I would be happy if I receive some feedback so I can priorize the next changes/features, as all my urgent wanted features are now implemented.

One big thing currently missing is EXIF lens detection, but that is number #1 on my todo list :wink:


great job Daniel, but…

how do I compile that? there’s no makefile?.. I’m not an expert but usually when I have a makefile I simply run make and that is all…

Looks like it’s using Cargo - Hello, Cargo! - The Rust Programming Language

You need to setup Rust (with https://rustup.rs/ for example), then you can build with cargo build --release.

Maybe I can add *.deb packages and/or static builds to github, need to figure out how these github workflows needs to be configured.


that would be nice!

This project might go big. Afaik this is the first foss dng converter out there and it has that rusty coolness. Great job!


Autobuilds for releases should work now. I’ve added a debian and windows package at Releases · dnglab/dnglab · GitHub
Hope this works. It’s alpha-ware, folks :wink:

1 Like

I remember DNG conversion beeing added to digiKam way back. I see now it was in 2008. I have never used digiKam though. Could someone confirm whether it’s still there and works?

Hi Daniel, great to see you activating the autobuild however I have a problem when trying to install the .deb package:

(base) 17:20:41 aadm@psion:~/Downloads$ sudo dpkg -i dnglab_v0.1.0-alpha1_amd64.deb 
dpkg: error processing archive dnglab_v0.1.0-alpha1_amd64.deb (--install):
 parsing file '/var/lib/dpkg/tmp.ci/control' near line 2 package 'dnglab':
 'Version' field value 'v0.1.0-alpha1': version number does not start with digit
Errors were encountered while processing:

This is the error when using apt instead (I’m adding this in case it gives some extra information that may be useful for you):

(base) 17:26:12 aadm@psion:~/Downloads$ sudo apt install ./dnglab_v0.1.0-alpha1_amd64.deb 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'dnglab' instead of './dnglab_v0.1.0-alpha1_amd64.deb'
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/884 kB of archives.
After this operation, 2.793 kB of additional disk space will be used.
Get:1 /home/aadm/Downloads/dnglab_v0.1.0-alpha1_amd64.deb dnglab amd64 v0.1.0-alpha1 [884 kB]
dpkg: error processing archive /home/aadm/Downloads/dnglab_v0.1.0-alpha1_amd64.deb (--unpack):
 parsing file '/var/lib/dpkg/tmp.ci/control' near line 2 package 'dnglab':
 'Version' field value 'v0.1.0-alpha1': version number does not start with digit
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)

(I’m on Ubuntu 20.10)

Oops, introduced a wrong version code on the last step.
I’ve updated the workflow, the deb is now working on my test machine: Release v0.1.0-rc1 · dnglab/dnglab · GitHub

1 Like

Excellent! It now works!


Daniel, the executable now works but I have found a few problems in some of the CR3 I’ve converted. Darktable does not recognize some of the converted dngs, while the conversion via Adobe dng converter works fine.

If you want to check this out I’ve put here one example: the original cr3 plus the two converted dng (the one via dnglab is the larger one, ~65 Mb with .DNG as suffix; the one converted with Adobe is ~28 Mb and suffix .dng):

1 Like

Should be fixed in Release v0.1.0-rc2 · dnglab/dnglab · GitHub

Some internal overflow in LJPEG encoder…

1 Like

Great! following in github :wink: