Digital Lith Processing

This page handles Digital Lith Processing Version


  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
  21. Privacy Policy

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.


Note: With Digital Lith 4.4 the support to read pre V4.x session or presets files is gone. Digital Lith was able to read those files for Versions way back (2.x) but that code has been removed. If you happen to still run on such an old version your presets and session would be lost. To carry those files into the new world, before running Digital Lith 4.4 please download the previous version (4.3.1), backup you session/presets files, run version 4.3.1 and add a new preset so that the presets file gets written. Now you are able to install and run version 4.4.

You can find version 4.3.1 here: Click!

If you are already on some version 4.x just go ahead and install version 4.4.

Keep in mind, it is always a good idea to backup you current session/presets files before running a new version.

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 Java8 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 Windows, for Mac open the disk image and move the program icon to the Applications folder."

On Ubuntu Linux you change to the directory you downloaded the .deb file to and run sudo dpkg -i DigitalLith_4.5.8.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.

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 tutorial available for download on my web-site. The tutorial will lead you through the program from installation to usage of all the parameters with many image examples. Here you go: 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.5.8

Version 4.5.7




Version 4.5.6

Version 4.5.5

Version 4.5.4

Version 4.5.3

Version 4.5.2

Version 4.5.1

Version 4.5

Version 4.4.3

Version 4.4.2

Version 4.4.1

Version 4.4

Version 4.3.1

Version 4.3

Version 4.2

Version 4.1.3

Version 4.1.2

Version 4.1.1

Version 4.1

Version 4.0.5

Version 4.0.4

Version 4.0.3

Version 4.0.2

Version 4.0.1

Version 4.0





Version 3.5




Version 3.4

Version 3.3




Version 3.2


Version (Codename J)

Version 3.1

Version 3.0

Version 2.1

Version 2.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 Rüdiger 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, please go ahead and donate 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.

And since politicians only want our best, here is the privacy policy fulfilling the European Union General Data Protection Regulation (GDPR):

Privacy Policy

We are very delighted that you have shown interest in our enterprise. Data protection is of a particularly high priority for the management of the ZoneV. The use of the Internet pages of the ZoneV is possible without any indication of personal data; however, if a data subject wants to use special enterprise services via our website, processing of personal data could become necessary. If the processing of personal data is necessary and there is no statutory basis for such processing, we generally obtain consent from the data subject.

The processing of personal data, such as the name, address, e-mail address, or telephone number of a data subject shall always be in line with the General Data Protection Regulation (GDPR), and in accordance with the country-specific data protection regulations applicable to the ZoneV. By means of this data protection declaration, our enterprise would like to inform the general public of the nature, scope, and purpose of the personal data we collect, use and process. Furthermore, data subjects are informed, by means of this data protection declaration, of the rights to which they are entitled.

As the controller, the ZoneV has implemented numerous technical and organizational measures to ensure the most complete protection of personal data processed through this website. However, Internet-based data transmissions may in principle have security gaps, so absolute protection may not be guaranteed. For this reason, every data subject is free to transfer personal data to us via alternative means, e.g. by telephone.

1. Definitions

The data protection declaration of the ZoneV is based on the terms used by the European legislator for the adoption of the General Data Protection Regulation (GDPR). Our data protection declaration should be legible and understandable for the general public, as well as our customers and business partners. To ensure this, we would like to first explain the terminology used.

In this data protection declaration, we use, inter alia, the following terms:

2. Name and Address of the controller

Controller for the purposes of the General Data Protection Regulation (GDPR), other data protection laws applicable in Member states of the European Union and other provisions related to data protection is:

Rüdiger Stobbe
Rodelweg 14
76684 Östringen

3. Collection of general data and information

The website of the ZoneV collects a series of general data and information when a data subject or automated system calls up the website. This general data and information are stored in the server log files. Collected may be (1) the browser types and versions used, (2) the operating system used by the accessing system, (3) the website from which an accessing system reaches our website (so-called referrers), (4) the sub-websites, (5) the date and time of access to the Internet site, (6) an Internet protocol address (IP address), (7) the Internet service provider of the accessing system, and (8) any other similar data and information that may be used in the event of attacks on our information technology systems.

When using these general data and information, the ZoneV does not draw any conclusions about the data subject. Rather, this information is needed to (1) deliver the content of our website correctly, (2) optimize the content of our website as well as its advertisement, (3) ensure the long-term viability of our information technology systems and website technology, and (4) provide law enforcement authorities with the information necessary for criminal prosecution in case of a cyber-attack. Therefore, the ZoneV analyzes anonymously collected data and information statistically, with the aim of increasing the data protection and data security of our enterprise, and to ensure an optimal level of protection for the personal data we process. The anonymous data of the server log files are stored separately from all personal data provided by a data subject.

4. Routine erasure and blocking of personal data

The data controller shall process and store the personal data of the data subject only for the period necessary to achieve the purpose of storage, or as far as this is granted by the European legislator or other legislators in laws or regulations to which the controller is subject to.

If the storage purpose is not applicable, or if a storage period prescribed by the European legislator or another competent legislator expires, the personal data are routinely blocked or erased in accordance with legal requirements.

5. Rights of the data subject

6. Legal basis for the processing

Art. 6(1) lit. a GDPR serves as the legal basis for processing operations for which we obtain consent for a specific processing purpose. If the processing of personal data is necessary for the performance of a contract to which the data subject is party, as is the case, for example, when processing operations are necessary for the supply of goods or to provide any other service, the processing is based on Article 6(1) lit. b GDPR. The same applies to such processing operations which are necessary for carrying out pre-contractual measures, for example in the case of inquiries concerning our products or services. Is our company subject to a legal obligation by which processing of personal data is required, such as for the fulfillment of tax obligations, the processing is based on Art. 6(1) lit. c GDPR. In rare cases, the processing of personal data may be necessary to protect the vital interests of the data subject or of another natural person. This would be the case, for example, if a visitor were injured in our company and his name, age, health insurance data or other vital information would have to be passed on to a doctor, hospital or other third party. Then the processing would be based on Art. 6(1) lit. d GDPR. Finally, processing operations could be based on Article 6(1) lit. f GDPR. This legal basis is used for processing operations which are not covered by any of the abovementioned legal grounds, if processing is necessary for the purposes of the legitimate interests pursued by our company or by a third party, except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data. Such processing operations are particularly permissible because they have been specifically mentioned by the European legislator. He considered that a legitimate interest could be assumed if the data subject is a client of the controller (Recital 47 Sentence 2 GDPR).

7. The legitimate interests pursued by the controller or by a third party

Where the processing of personal data is based on Article 6(1) lit. f GDPR our legitimate interest is to carry out our business in favor of the well-being of all our employees and the shareholders.

8. Period for which the personal data will be stored

The criteria used to determine the period of storage of personal data is the respective statutory retention period. After expiration of that period, the corresponding data is routinely deleted, as long as it is no longer necessary for the fulfillment of the contract or the initiation of a contract.

9. Provision of personal data as statutory or contractual requirement; Requirement necessary to enter into a contract; Obligation of the data subject to provide the personal data; possible consequences of failure to provide such data

We clarify that the provision of personal data is partly required by law (e.g. tax regulations) or can also result from contractual provisions (e.g. information on the contractual partner). Sometimes it may be necessary to conclude a contract that the data subject provides us with personal data, which must subsequently be processed by us. The data subject is, for example, obliged to provide us with personal data when our company signs a contract with him or her. The non-provision of the personal data would have the consequence that the contract with the data subject could not be concluded. Before personal data is provided by the data subject, the data subject must contact any employee. The employee clarifies to the data subject whether the provision of the personal data is required by law or contract or is necessary for the conclusion of the contract, whether there is an obligation to provide the personal data and the consequences of non-provision of the personal data.

10. Existence of automated decision-making

As a responsible company, we do not use automatic decision-making or profiling.

This Privacy Policy has been generated by the Privacy Policy Generator of the External Data Protection Officers that was developed in cooperation with RC GmbH, which sells used notebooks and the Media Law Lawyers from WBS-LAW.