Digital Lith Processing


  1. Introduction
  2. Installation
  3. Program Window
  4. Image Preview
  5. Developing an Image
  6. Development Parameters for the Standard Process
  7. How Development Parameters Interact
  8. The Parameter History
  9. Presets
  10. Image Metadata
  11. Preferences
  12. Patterns for Uneven Development
  13. Streaking Modules
  14. Examples
  15. Notes
  16. Change Log
  17. Digital Lith Streaking SDK
  18. Disclaimer, Copyright and Donations
  19. Thanks
  20. Contact

header image


What kept me away from doing more digital photography was the lack of a program which would allow me to produce output with the look and feel of a darkroom lith print. It happened so often, that I photographed something with my digital camera and immediately thought: Sigh, I would like to do a lith print of it but my film camera is at home.

But in the last years more and more papers I used to do lith prints disappeared from the market and newer papers which showed up on the marked were not suited for the lith process. And so I got tired of hunting for old papers and stopped doing darkroom lith prints - there is nothing like a non-darkroom lith print.

So I went some time missing lith printing or at least something with the impression of a lith print. So I went on the net and looked for a digital fake process to produce something which at least looks a little bit like a scanned lith print. But all I could find was not very promising and lacking the look of the real thing. So I gave up on this and went back to grief-mode for some time.

The subconscious can be a strong driving force. So I started thinking about what makes a lith print look like a lith print and how I would be able to archive it by some program. The crux is infectious development and how grain is built up in this process. That made it clear that the key is an iterative process and that this will be something which will take time to compute. Very different from moving around a slider in some image manipulation program. Computation takes a long time - although not as long as the darkroom process, it will get some load on your computer. If you never heard the fan of your computer working, with this program it is very likely that it will happen.

The process itself is very flexible and I tried to parametrize it in a way that seems familiar for a darkroom lith printer.

And now it happens, that the program is already availabile in version 4. It went a long way to reach that point but all additions over time proved to be very valuable.


Digital Lith Processing is a Java program and needs a Java runtime environment (JRE) installed on your computer to run. If you are not on Mac OS X and use the version bundled with a Java Runtime (larger download) then please install Java before you install DigitalLithProcessing. You can find the newest JRE here: Oracle Java Runtime Environment. You need at least a Java7 or later version. Once Java is installed, download DigitalLithProcessing. There are three different versions:

If you are running on Windows or Mac OS X it is recommended to use those versions as they are much easier to use. Just unzip the zip archive and copy the program file into your programs folder and off you go.

On Ubuntu Linux you change to the directory you downloaded the .deb file to and run sudo dpkg -i DigitalLithLinux_4.3.1.deb It will install an application launcher for Gnome Desktop. You need to have openjdk-8-jre or oracle-java8-installer be installed on your system to use the package. For the oracle-java8-installer you will need to add some special package repository. Simpler is to rely on openjdk which you can install via sudo apt-get install openjdk-8-jre.

If you are running on any other operating system which supports Java, then unpack the archive file which will unpack into a directory digilith. Move this directory wherever appropriate for you. Then start a shell and set the JAVA_HOME environment variable to your Java home. Set the environment variable DIGITAL_LITH_HOME to point to your digilith directory and run the shell script you can find in the digilith install directory.

I am not able to test the program on every platform here is a list of platforms I know the program to run for sure:

If you have the program running on a different OS and everything works OK, please let me know and I will extend the list.

Please note, if you use Google Chrome on Linux, then the zipped tar archive is unpacked on download, but the extension .gz is preservered. In this case you may get an error when using tar zxf .... Please go ahead using tar xf ... instead.

Additional items to install

Additional items such as streaking or process modules or predefined parameter sets can be downloaded from the dlp site from within the program via the Exchange menu item.

Unlike previous versions it is no longer needed to restart the program after downloading streaking or process modules.

Additional Documentation

There is a series of tutorials on my web-site which is much more detailed than the documentation here. To have a look at the tutorials, here is a link to season 1: Click!

Program Window

program window image

The image above shows the program window with the different sections pointed out. The following will give you a description about every section.

Image Preview

The image preview shows a small preview of the loaded image. In order to create a test lith image based on the current parameters, the lith development computations using the small preview image is much faster than using the full resolution image. During computation and test computation the current status of computation is shown here.

But the computation of the small preview only gives a rough hint about how the image will look like. You can use it for an overview to see how fast blacks build up etc. Once you have a rough guess on your parameters you may want to take a closer look on some 100% crops of your image before you run the whole computation. For this you can click into the image and then the preview will be of that area in a 100% view. Now you can fine-tune your parameters. If you click again the full image will be shown again. Either do your development now or test with another crop until you are satisfied with the result.

Developing an Image

Before you can develop an image you first have to load the image into the program. If you start the program again and your last image is still available, then this is loaded again. Also all the settings are loaded again as well as the history. So if you close the program and restart again you can continue your work right at where you left last time.

Note: There is a tutorial series about using Digital Lith Processing on my homepage. Find it here: Digital Lith Tutorials

Development Parameters

To drive the process of computing a digital lith image, there are several parameters. These are named after the real process and fulfill similar purposes. The following will describe all of them, how they influence the final image and how they interact with each other. The parameters are divided into four sections: Process Time, Process Specific Settings, Coloring and Uneven Development.

Once you settle down on your usual basic settings, the process time is the single most parameter that you play around with. That is the reason it got put on the very top of the parameters section.

Process Time

Process Specific Settings for the Standard Process

This part describes the process specific settings for the standard process. Those will control development time and grain structure. If you install other process modules or implement your own process module those parameters might be totally different.


Lith prints can be pretty colorful and here is the place to define the color. You can choose colors for the shadows, the midtones and the highlights. You only define the tint and the saturation as the brightness of the color is defined by the image tone. All that is done in the Coloring dialog.

With the color balance you define how the shadow, midtone and highlight colors blend into each other. This is done the following way. The shadow and highlight colors are summed up and if they go over 1 then only these two are used. Everything below 1 is filled up with the midtone color.

Sometimes lith prints do not go to a full deep black and sometimes due to the long development time the paper itself takes up kind of a tint. To simulate this you can define that the shadows and/or highlights get a bit of fading.

All that is controlled by the four or five curves in the coloring dialog. You can select which curve you want to adjust. To add a new control point, just click to the position where you want to place it. To delete a control point, move it on one of its neighbors and they will merge. You can reset all curves to the default or just the selected curve.

Then there are two parameters which are part of the coloring, but which will not be stored in a preset. It is just to allow for a quick overwrite.

Image Adjustments

With version 4.3 there are two more parameters you can use for your convenience.

With these adjustments you are able to work from one high resolution source file only and then develop different image sizes.

Uneven Development

This can be used to simulate uneven development effects or development faults like pepper fogging. There are many parameters to control this. In general these are parameters to define an uneven development pattern, a parameter to setup pepper fogging and parameters to define a streaking pattern which you can see from time to time when lith printing.

To simulate uneven development you can store pattern images in the pattern directory (see the preferences section) and add them to the paper layer before the development starts. This is different from adding the pattern to the image before sending it into digital lith. There is a pattern type (the name of the subdirectory in the pattern directory) and a pattern name (the filename of the pattern file).

How Development Parameters Interact

This is again for the standard process only. Some side effects of adjusting development parameters are:

The Parameter History

Whenever you do a test development, normal development or batch development the used development parameters are stored in the history. Each setting will only be put one time to the history, so the history does not fill up with the same settings if you happen to use those for different images. With the Next and Previous buttons you can walk through the history to re-visit settings used before. The number of entries in the history can be specified in the preferences dialog.

But there is another source of history. You can also read the development parameters out of image files processed using this program. That can be done with the Read-out button which lets you select an image file and then reads the preset metadata from it.


You do not have to write down or memorize the parameters you like. There are presets you can define. If you like your current set of parameters, click on the ADD button to define a new parameter preset. In a dialog you can provide a name for the preset and select if it should be a full parameter preset, a preset for the selected sections only or a streaking preset which will not overwrite existing settings, but add the presets streaking to the existing streaking parametes. If a preset with the same name already exists it will be updated with the new parameters.

If you click on one of your presets in the list, then the parameters will be populated with the values stored in the presets.

To remove a preset, rename it, export it or redefine it from the current parameters: right-click on the preset or click on the preset while holding the Ctrl/Strg key pressed and a popup menu will show up where you can select what to do.

Presets are stored in a file ( or .digital_lith_presets, DigitalLithPresets if they come from an earlier version and the file has not been renamed) in your home directory. You may want to backup that file from time to time.

Clicking on the IMPORT button will allow you to select a preset file and import the presets provided by it into your presets list.

There is a kind of temporary list of presets. These are parameter combinations used for a test/development. These are stored in a history which you can browse with the PREVIOUS and NEXT buttons. The history is preserved. So you won't loose the history when you quit the program.

Over time the list of presets will fill up. But then there might be presets used more often then others. In this case you can add a preset to the list of favorites. You can do that by right-clicking on a preset in the list and then select add to favorites. To select one of you favorite presets, go to the favorites menu.

Finally you can also get presets from the preset exchange. This lets you import presets directly from the internet.

Image Metadata

When an image is stored after computation the program also stores the digital lith parameters as metadata within the image file. So you can use any exif viewer tool to find out about which parameters you used to get a certain look.

From version 2.0 on also the settings are stored as a preset in the metadata. If you do not remember the settings used for an image, but want to use those exact settings for another image you are now able to read the settings from your image. Press the Read from file button and select the image you want to read the settings from.


In the preferences dialog you are able to set a few program-wide parameters. These are the following:

Patterns for Uneven Development

To simulate uneven development and for other creative purposes you can overlay an image file (which I'm calling a "pattern") over the image. In reality it is more of an underlay as the pattern is applied to the paper layer before development and acts a bit like the grain parameter, but more controlled. That also means that if you add a pattern, then you might want to decrease the grain parameter a bit or you will have to change the development time.

Patterns are given by a pattern type and a pattern name. Here is how to setup pattern files to be used by the Digital Lith Processing program: In the preferences dialog you can define a directory where you place your patterns. In there you will have subdirectories and digital lith uses the names of these directories as pattern types. In each directory you can have one or more jpg files which contain the pattern. My setup looks a bit like this: There is a subdirectory called CopyPaper and in there I have several images of copy paper. So I can choose from multiple patterns when doing a series of images so that not each image gets the same pattern. Then there is a directory called CopyPaperSmooth and in there are the same images like in CopyPaper but this time a bit blurred and smoothed out etc.

In order to not have to adjust the development settings each time you change the pattern, select the auto-contrast option after pressing the uneven development settings button. This will bring the average brightness value of the pattern image to middle gray and expand the contrast to full range.

To add some variance you can either rotate the pattern by 180° or flip it horizontally or vertically.

Obviously a pattern can be anything you like, so if you want to underlay a page of a newspaper, that might not be something that shows up in the darkroom, but might get to some nice results anyway. It opens up a large playground.

Streaking Modules

If you like to use the streaking feature you will have to download one or more of the following streaking modules or to develop your own streaking module.

Since there are already quite a few streaking types (each module contains more than one type) I decided that no streaking module will be included by default. So everyone can install the modules needed and leave the others alone.

To install the modules, put the jar files into a directory and point digital lith to that directory (via the preferences dialog). Then restart the program and the streaking modules will show up in the streaking selection at the bottom of the parameters list.

To add a streaking pattern to you image, select the one you like from the drill-down list and click the Add button underneath it. This will add the streaking. Fill in the parameters you like and give it a try.

You can add as many streaking effects as you like. Simply select and add again. The streaking will be applied in the order shown in the UI. To reorder simply use the little up and down arrows next to the streaking name.

To remove a streaking, click on the (-) and that part will get removed.

And then there is also the possibility to change a streaking selection from one to another streaking type provided by the same module while preserving the settings. For that click on the name of the streaking and you will find a list of possible alternatives.


Here are some examples of my benchmark image developed with different presets from the preset exchange.

example image
Foma Fomatone (1.0)

example image
Adox Vario Classic (1.0)

example image
Kentmere Kentona Alternative (1.0)

example image
Solarisation (1.0)


Here are some notes worth mentioning but probably not interesting for those not interested in technical details.

Change Log

Version 4.3.1

Version 4.3.0

Version 4.2.0

Version 4.1.3

Version 4.1.2

Version 4.1.1

Version 4.1.0

Version 4.0.5

Version 4.0.4

Version 4.0.3

Version 4.0.2

Version 4.0.1

Version 4.0

Digital Lith Extension SDK

For those who are curious. There is now the possibility to implement and build your own streaking and process modules. If you know how to write Java code then it should be very easy for you to come up with your own modules.

Want to know more: Digital Lith SDK

Disclaimer, Copyright and Donations

DigitalLithProgramming is copyrighted by Ruediger Stobbe. You can use it for free at your own risk.

However, if you like the program and like to donate a small amount of money - that is OK too but at the moment I only accept donations via PayPal:

If you do want to donate, but do not want to use PayPal, then instead of giving nothing, why not donate some amount of money to some charity organization - on behalf of DigitalLithProcessing.

Special Thanks!

Special thanks go to Sebastian for beta testing the Linux version and doing a bit of PR.

And a very special thanks to Craig, for patiently using all versions, beta, alpha, unstable whatever, massive feedback and also for reviewing the help texts and this page.


Feedback is always welcome. So if you have suggestions about what is missing or about bugs - please feel free to contact me via email:

Good news is also welcome, so if you like the program ... let me know too.