Color film scan processing

This post is a big update to topics discussed in Inverting raw scans and Thoughts on color negative scanning. For B&W, see the companion article B&W film scan processing.

I no longer scan with my Nikon Coolscan V. I now use a Sony A7rII on a copy stand to make ‘camera’ scans.

For processing the resulting photos, I use Adobe Camera Raw (ACR) and Photoshop (PS). My PS actions are available here.1

Disclaimer: Color is hard to get right. I have had good results using the following process with my camera (Sony A7rII), Adobe’s ‘standard’ profile for that camera, my light pad2, and Kodak film. Your results may vary. A low CRI light source could deliver sub par results, as could other cameras. Maybe I just lucked out that my camera is well profiled and delivers good color.

Step 1 - ACR

Starting image in ACR

Starting image in ACR with no adjustments.

Bring your image into ACR. White balance on the film base. This step is crucial and is 99% of the solution to the dreaded ‘removing the orange mask’ problem. A RAW developer is needed here. It can be done without, but many photo tools do not operate in linear color space. RAW developers are one common tool that does; we use that to our advantage. This step can be done with something like dcraw, but I use PS and ACR, and prefer to work with a GUI.

image in ACR

White balanced on the selection at the top between the sprocket holes.

I do enable optics corrections in ACR: distortion and vignetting. I found this gives better scans, particularly getting rid of the orange vignette one might get on a processed image. For reference, I can see a difference when shooting with the Sony FE 90mm f/2.8 Macro lens at f/5.6 or f/8.

You can invert the image in ACR as well using the curves tool. From my experimentation, it unfortunately does make a difference. I find colors to be more realistic and less ‘electric’ if done in PS. I saw similar behavior when converting images with dcraw and various settings. I say this is unfortunate because it would be appealing to invert in ACR and generate previews based on that so one didn’t have to look at a bunch of orange images in a browser. You can still do this as an extra step and just undo it for actual conversion.

Lastly, make sure the ‘Adobe Color’ profile is selected. While I can’t speak for cameras other than the Sony A7rII, ‘Adobe Color’ gives much more accurate colors in the final conversion. I was struggling mightily with a few images where I could not get a yellow correct, when I finally realized for that I had somehow left the profile to ‘Camera Standard’, which presumably is some punched-up Sony thing.

Adobe Monochrome profile

Step 2 - PS - 1st pass

Now it’s time for actions. Run the ‘Color neg process’ action to start.

List of Photoshop actions

A levels dialog will pop up immediately for some user input, associated with the ‘Levels - basic contrast’ layer which will be explained below. I usually set the highlight slider to slightly above clipping: move the slider while holding down the Option key on macOS until clipping occurs, and then back off a bit. A similar thing can be done with shadows, though depending on how much I inadvertently underexposed, I might need to leave the shadows pretty light. Then set the midtone slider until things look about right. All of these adjustments can be changed later.

Initial contrast adjustment

Initial contrast adjustment dialog.

Looking for highlight clipping with contrast adjustment

Looking for where the highlihgts clip while adjusting contrast.

Final basic contrast adjustment

Final contrast adjustment dialog.

There are a bunch of layers that the ‘Color neg process’ action makes:

Layers created by the Basic contrast adjust action
  1. ‘Invert’: Inverts the image.

  2. ‘Auto curves’: Sets the endpoints of the curves using ‘Find dark/light colors’ with 0.01% clipping on the darks and 0% clipping on the highlights. I usually have a layer mask on this layer to block out included film borders. This layer sometimes needs adjustment depending on the color content of the image.

  3. ‘Levels - basic contrast’: Discussed above. Basic black/white clipping, with a contrast adjustment. Does what it says - the first order contrast adjustment.

  4. ‘Curves - white balance’: By default, does nothing. IF after adjustments on lower layers (‘Auto curves’ in particular), the image needs a white balance adjustment (shot in the wrong color temperature light, etc.), go to this layer, click on the gray point eyedropper, and go click around your image on neutral tones. Curves can also be adjust by hand. Be wary of anything that produces big changes in the curves, as it might be an indication that the endpoints set on the ‘Auto curves’ layer are wrong.

    White balance gray point eyedropper

    White balancing - the gray point eyedropper is highlighted in orange.

  5. ‘Curves - contrast tweak’: Slight S-shaped curve to adjust contrast. This layer can be faded out: you can hit the number keys (1 through 0) to adjust the layer opacity from 10% to 100%, varying the overall contrast. Note, this layer is set to ‘Luminosity’ blending. If you want, change the blend mode to ‘Normal’ and this layer will also affect color saturation. As this layer is mostly a highlights targeted adjustment, I prefer ‘Luminosity’.

  6. ‘Color Balance’: By default, this layer is disabled. Enable it to apply a bit of ‘warming’ to the image. Adjust sliders to taste, or opacity with the number keys, but I’ve found +15 red/cyan and -15 yellow/blue works pretty well for most images.

NOTE: If you are working with images with no borders, you might want to remove the mask making steps completely (the ‘Play action “90% mask…"’ in the ‘Color neg process’ action). If you are working on images with large borders, non-35mm formats, or anything where this mask is the wrong shape, run ‘Color neg process - borders’ with appropriate modifications. ‘Color neg process - borders’ should properly recognize landscape and portrait orientation and provide a large enough border mask for most purposes.

Next up is the ‘Dust Bust’ action. This makes a ‘Dust Bust’ layer right above the background layer and activates the healing brush. Change the size of the brush with the ‘{’ and ‘}’ keys, zoom into 100% (Command-Option-0 on macOS), and brush out your dust. Sometimes you might want to go over a spot twice if the healing brush result is a little funky looking. I’ve also found that long light scratches are sometimes best spotted out in segments rather than with one long brush stroke (I seem to have more of these on commercially processed C-41 than home processed B&W). When you are done, go back to full view (Command-0).

Dust Bust layer

You want to do the dust spotting before any fancy layers with luminosity masks or anything. The reason is the luminosity mask will contain the dust if its not spotted out, and when you then spot it out afterwards, the tonal values will be different for the dust than the surrounding areas.

Step 3 - PS - 2nd pass

Now you have a basic image. This is the equivalent of a test print in my mind. I’m not a master printer (nor a master photographer), so most of the time for my snapshots, I’m done.

The basic curves adjustment performed in ‘Auto curves’ doesn’t always catch everything. I have had issues with Ektar, images with a natural strong color cast, images with really bright highlights, etc. One trick I use is the ‘Highlight check’ action. What this does is add a temporary curves layer above the ‘Curves - contrast tweak’ layer, cranks up the gamma, and then puts you back on the ‘Auto curves’ layer. It highlights the highlights. If your highlights have the right natural color, then no real adjustments are needed. If they are off (too blue, too red, etc.) then go to the appropriate color channel on the ‘Auto curves’ layer and move the white point slider for that channel to neutralize the color cast. Depending on the image, you might need to adjust all three channels white points. You might also need to adjust the midtone slider on the ‘highlight check’ layer to appropriately accent the range that needs to be adjusted. When you are done, run the ‘Highlight check - remove’ action to delete the ‘highlight check’ layer, or do it manually. I have had a few images where this actually did not make the image better, so undo is your friend here.

Checking the highlights

Example of good highlight color balance of the extreme highlights.

Red tinted highlights

Example of red tint in the extreme highlights. Curtains in upper left are white and illuminated by sunlight.

Corrected highlights

Example of corrected highlight color balance. Red channel white point was moved from 220 to 228

Beyond color correction tweaks, sometimes the contrast isn’t quite what you like. Some extra tweaks with an additional curves layer can be performed. Admittingly, after years of using only curves with various complex blending modes and masks (still useful), I’ve come around to PS’s ‘dumb’ adjustment layers, like Brightness/Contrast, Exposure, and Color Balance. To that end, the ‘Brightness Boost’ action does just that by adding a Brightness/Contrast layer to the top of the stack with a brightness boost. Adjust to taste.

Final processed image

Final processed image.

There’s a lot more to color correcting images in PS that is far outside of the scope of this post. LAB color mode adjustments, luminosity layers, etc. A few quick links:

  • Alex Burke: A nice tutorial about negative scanning and post processing. The section about luminosity masks is very informative.
  • Luminosity Masks: Detailed tutorial on sophisticated adjustments using luminosity masks.
  • Photoshop LAB Color by Dan Margulis. Years ago I read this book and it was a great way to learn an interesting approach to image correction and to learn a bunch of tricks. Seems like it is out of print and very expensive now. I have the 1st edition which is much cheaper used.

That’s basically it! I do have some helper actions to do things like save out a full sized jpg file for sharing online and as a ‘print’. Another useful action is the one that downsizes the image (50% in my case) and saves as a TIFF file with all layers included. If I ever want to re-edit the image, I can open up the RAW file from ACR and the TIFF file, and copy over all of the adjustment layers. If I do this, I would have to recreate the dust spotting layer as it the wrong size (probably some way to upscale and use that too). I do this as once I am done with an image, I usually don’t need the full size work file–the jpeg is enough. And I don’t particularly want the GIANT files that a full-sized TIFF file would be (300+ MB). Of course, if I was working on my masterpiece, I’d probably save the full PS file, but let’s be honest about the quality of my pictures.

Good luck and let me know if you run into any issues.


  1. These are not the actual actions I use, but ‘cleaned up’ versions. I do not use PS or make actions for a living, so often they are a bit disorganized. If these actions are useful, great! If not, I can attempt to help you out but can’t promise anything. ↩︎

  2. Kaiser Slimlite Plano 5000K, CRI 95. ↩︎