Skip to content
Used to generate a slideshow and apply processing profiles to pictures.
Shell HTML Makefile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Basic raw / JPEG slideshow

This is a simple personal project used to:

  • Apply RawTherapee .pp3 processing profile files to raw (.RW2) and JPEG pictures.

  • Export these pictures to lightweight JPEG files.

  • Use these new JPEG files to create a static HTML slideshow ready for web upload.

  • Add HTML descriptions to each picture for the slideshow.


Scripts and tools

This converts your high-quality pictures into lightweight versions, applying RawTherapee processing profiles along the way.

This generates the HTML slideshow and its assets (the pictures), using what was generated using


If you installed make, this allows you to run a few rules:

  • make

  • make

  • make → combination of convert and generate.

  • make clean → Remove build/ and pics/.

Stuff you (kinda) have to manage yourself


This is where your original-quality raw and JPEG files should be stored, along with the specific .pp3 files that should be applied to them.


For each picture, if a file named from that picture’s name with an appended .html is found in there, this file will be used as the pictures description. For example, if you have a foo.jpg in pics_hq/, its description will be in descriptions/foo.jpg.html.


This is the skeleton for the HTML file containing the final slideshow. I write the introductory slide in there, and the CSS is bundled in it too. Edit it to adjust the page’s title and the introduction, I guess. It contains placeholders for the main slides and the navigation dots; do not touch that.


An additional processing profile that gets applied to every picture, but after the picture-specific profiles. I use it to choose the export dimensions, apply post-resizing sharpening, strip GPS metadata, and add an artist name to pictures.

Stuff that gets automatically generated


This is where the new versions of your pictures end up after export, etc.


This contains the static HTML slideshow and its assets after generation. I generally copy the whole content of this directory to my website once everything looks fine, or open build/index.html locally with a web browser to check the result.

Usage, step by step

  1. Choose a bunch of pictures (JPEG or RW2 files).

  2. Use RawTherapee to post-process them as you like. Export the resulting processing profiles (.pp3 files) with “correct” names (see Naming your processing profiles).

  3. Store the initial pictures from Step 1 into pics_hq/ along with the .pp3 files from Step 2.

  4. Edit the index.html file found at the root of the project:

    1. Change the page’s title (within <title>…</title>).

    2. Edit the content of the introductory slide:

      <div class="mySlides fade only-text">
          <div class="text">
              <p>Plop plup.</p>
              <p>Foo bar.</p>
    3. I guess you’ll also want to change this:

      <p class="link-to-site"><a href="">←</a></p>
  5. Edit the common export processing profile, found at the root as exporting.pp3:

    1. Change the Artist’s name.

    2. Optionally, make sure the resizing bounding box suits your fancy, and edit anything you like. This is none of my concern, actually.

  6. Run ./ to populate pics/.

  7. Run ./ to populate build/.

  8. Check the result by opening build/index.html with the web browser of your liking. If there’s an issue with the pictures, fix whatever needs to be fixed and go back to Step 6. To fix descriptions and stuff, however, you only need to rerun ./

GPS information

If exiv2 is installed, lots of metadata can be extracted from the original files (whereas RawTherapee 5.4 seems to be having issues with my GPS data).

To prevent location information from appearing in the slideshow, edit to replace…

declare -r SHOULD_USE_GPS_INFO=1

… with…

declare -r SHOULD_USE_GPS_INFO=''

Naming your processing profiles

When I want to check the result of my postprocessing, I export my files to JPEG files with names like foo_edit.JPG in order to make sure the postprocessed files are easily discernible from the original ones.

  • foo.jpgfoo_edit.JPG

  • foo.RW2foo_edit.JPG

  • foo_edit.jpgfoo_edit_edit.JPG

You’ll notice that the original file extension actually doesn’t matter at all. I strip it and append _edit.JPG to the name.

These _edit JPEG files are not actually used in the final slideshow. I just want to make sure the result looks good.

Now back to the point: since the .pp3 processing profiles are saved alongside the exported files and named after them, I end up with files like foo_edit.JPG.out.pp3. This is the convention used in this project to find the processing profile corresponding to each file. So for example, for a picture pics_hq/foo.RW2, the processing profile that will be applied will be pics_hq/foo_edit.JPG.out.pp3.


This behaviour can be changed without much hassle, especially if you have at least a little knowledge in Bash. The script contains a function used to obtain the path to the processing profile for a given picture. By changing the implementation of this function (and the related unit-test-ish things I wrote), you should be able to use whatever convention you want for this. For example, for a foo.RW2 ⇔ foo.pp3 version, one could write something like:

printf '%s.pp3' "${1%.*}"
You can’t perform that action at this time.