Converting scans from colour negative film

The question of how to achieve a positive image from a colour negative file is a hot topic for many photographers, with many competing options. You can send your film to a lab and get them to scan the film after development; you can scan with a flatbed or dedicated film scanner; or you can scan with a digital camera, with a copy stand and light source.

If you choose to use a scanner, you can use the functions of the scanning software (such as EpsonScan, VueScan, or Silverfast) to amend the colour and contrast settings of the resulting image. Alternatively, you can create a “raw” scan, which will be negative, and use additional software to invert that negative into a positive image.

If you choose to make a digital copy with a digital camera, you will be creating a negative image, so you will have to use additional software to invert the image.

(I use an Epson v700 scanner, rather than DSLR scanning. The main reason is that I already have a scanner, and don’t own a Digital SLR. But if the scanner broke down I would consider switching to DSLR scanning.)

There are at least three software options currently available that I know of:

Negative LabPro is a Lightroom add-in whilst ColorPerfect and Grain2Pixel work with Paintshop.

I purchased ColorPerfect some time ago and recently downloaded Grain2Pixel to try it out – an easy decision with a free product.

There is a good article on 35mmc which reviews Grain2Pixel and compares the output against Negative LabPro. I don’t have Negative LabPro, but I do have ColorPerfect, so decided I would do my own comparison between the output of ColorPerfect and Grain2Pixel. The results below show 10 images taken with two Kodak film stocks; Portra 400 and Gold 200.

Film 1 – 6×7 Kodak Portra 400

These were shot with a Mamiya RZ67 and home developed using the Cinestill powdered C41 kit. The locations are in the Ardnamuchan area of Scotland, or in the case of the flower and chillis, my garden.

I have also shown, as the first image in each set, the output you would get if you just used VueScan in a basic manner to create a positive TIFF or JPEG direct from VueScan. I left the colour settings at “Auto Levels”. In practice I would normally amend these settings to get a colour and contrast setting to suit my taste.

I should also apologise that the images used contain imperfections such as untidy borders and dust spots – that’s because I didn’t want to affect the images through any tidying up work. I don’t normally present my images this way!

Image 1

Above: Vuescan with “Auto Levels” colour setting
L: ColorPerfect R:Grain2Pixel
The slider can be dragged to the left or right.

Image 2

Above: Vuescan with “Auto Levels” colour setting
L: ColorPerfect R:Grain2Pixel
The reds are for more true-to-life in the Color Perfect version.

Image 3

Above: Vuescan with “Auto Levels” colour setting
L: ColorPerfect R:Grain2Pixel
The Grain2Pixel version is too contrasty and saturated for my taste.

Image 4

Above: Vuescan with “Auto Levels” colour setting

L: ColorPerfect R:Grain2Pixel
Two very different renderings. The Grain2Pixel version is more immediately attractive to my eye.

Image 5

L: ColorPerfect R:Grain2Pixel
This flower is actually orange not red, so the ColorPerfect version is closer to real life

Film 2 – 35mm Kodak Gold 200

These were shot at Newby Hall in North Yorkshire with an Olympus OM10 in August 2020 and lab developed. With this set, I don’t have the “Vuescan only” options available as I didn’t have the writing of this article in mind at the time I scanned them.

Image 6

L: ColorPerfect R:Grain2Pixel

Image 7

L: ColorPerfect R:Grain2Pixel

Image 8

L: ColorPerfect R:Grain2Pixel

Image 9

L: ColorPerfect R:Grain2Pixel

Image 10

L: ColorPerfect R:Grain2Pixel


I’m going to keep my comments brief because readers can look at these examples and come to their own views … but in general I find that the Grain2Pixel output tends to have more contrast and saturation than the ColorPerfect output. Whether you think this is a good thing is up to you.

ColorPerfect allows the user to state the film type in use and hence the output is tailored to that film stock. In the film 1 examples, I told the software I was using Portra 400. Grain2Pixel doesn’t have this option, hence it must treat every frame the same, regardless of what film stock was used.

Grain2Pixel has a very easy to use batch mode, whereas I’ve never got round to trying to operate ColorPerfect in batch mode, so that’s a win for Grain2Pixel. ColorPerfect has a very obscure user interface, with the result that I only scratch the surface of its’ options.

The direct output examples from VueScan (for film 1 only) tend to be flat and dull compared to either ColorPerfect or Grain2Pixel; but as I said above I would normally tweak the settings to get a little closer to the result I wanted. All three options would end up being further edited in Lightroom or Photoshop.

It is possible that my tentative conclusions are nothing more that “confirmation bias” because I want to believe that the software I paid for (ColorPerfect) is better in some way than the free newcomer (Grain2Pixel). In the future, I will probably continue to use ColorPerfect by default but if I find I can’t get the result I want, then Grain2Pixel may be called upon to see what it can produce.


  1. Well congratulations, you’ve all but solidified my decision to let the lab do it. Film is enough a rabbit hole. To much so that I think I’ll stick with what I know. Actually. The real reason is I don’t have a scanner and I lack a 1:1 macro required for an SLR copy stand set up. I’ve liked the results I’ve seen from Silverfast and Negative Lab Pro, but I also really like results I get from The Darkroom out in Cali.

    Knowing what I know about film labs has certainly changed the way I think about film photography. I used to miss the look of 4×6 C-types. Well it turns out those are all digital C-types and the look is a preset on the scanner.

    Anyway, enough rambling. I enjoyed the post a great deal. I have to agree that Grain2Pixel was puncher and in many cases more pleasing. It’s hard to say if the development played into the outcome here since, I’m told, temperature can play a big factor in development. If I had to choose between the two. It’d be Grain2Pixel, the images, if punchy are all unusable. I don’t think the same can be said of ColorPerfect. With that said, I wasn’t there, and maybe I’m going with ascetically pleasing choice and not the most realistic. I’d gravitate to what my eye saw every time.



  2. An interesting comparison, thank you!. Still setting up my darkroom, so my default is still the lab scans, which are very pleasing usually, although higher resolution would be nice sometimes. I also use an Epson V800, with which I have scanned all my old negatives and slides during lockdown. So far I have just used Epsonscan, it does a good job of dust removal and colour correction for the older negatives which vary in quality and colour fading quite a lot. If any more editing is required Photoscape is very easy to use and gives me a pleasing result. Plenty of options out there!


  3. ColorPerfect seems the winner here to me. Some options to increase saturation or contrast if you want to, whereas these seem ‘hard-wired’ in the Grain2Pixel versions.
    Faced with a winter project of digitising and cataloging thousands of colour negs I decided to bite the bullet and subscribe to Lightroom so that I could use Negative Lab Pro, and I have been delighted (even amazed at times) with the results. The originals are RAW files shot on a Nikon D600 with an old Micro-Nikkor. NLP seems to be able to dig a lot of information to enable a good result with virtually any grade of neg. Pretty good with first time conversions of BW shots as well, so I think it’s well worth the money.
    I used to use a Nikon Coolscan and could never get a decent result from a colour neg.


  4. I have used both Color Perfect and Negative Lab Pro. But I only found out about Grain2Pixel on this blog. I’m just testing it. It seems to me that there is no automatic white balance in this script that you have to adjust yourself later. Very nice blog 🙂

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.