Getting Around in GIMP - Expired Polaroid 600 Film Effect

I found an old Polaroid camera among a pile of old stuff in my house recently, and lo and behold it still had film in it! The camera had 7 shots left, and my wife and I had fun shooting the last few that evening. What was wonderful was that the developer/fix in the film had started to dry out (the film expired 5 years ago), and it left some wonderful un-developed portions of the final print where there was not enough chemicals to completely cover the image. The colors were also quite washed out and interesting.

Expired Polaroid 600 Scan
Expired Polaroid 600 Scan, a photo by Pat David on Flickr.

Click here for my gallery on Flickr that shows some expired Polaroids to get an idea of the effect I am referring to.

For the rest of my tutorials on GIMP, see Getting Around in GIMP

I've now also posted a new blog post that includes the script for creating a much more realistic looking polaroid border for your images based on image width:

Getting Around in GIMP - Polaroid 600 Film Border Script

So I have decided to attempt a replication of the effect in GIMP (mostly as a means to learn script-fu a little better). I have broken down the attempt at recreation into two parts:

  1. Replicate the colors of the washed-out image, and the undeveloped portions of the print.

  2. Replicate the border of the Polaroid 600 film to frame the image with, including the texture.


Replicating Colors


This wasn't as bad as I thought it would be. There are a couple of ways you could go about this...


One way is to open up a scan of an expired shot, and color correct it in GIMP until the colors look pretty good and natural to you. Then you will only need to find the RGB differences of some representative pixels to create your curve. I'll have a tutorial up later about how I approach that (tedious...).

Another way is to just go ahead and use the awesome Get Curves Plugin from elsamuko on GIMP registry. (By the way, I highly recommend checking out his other GIMP scripts/plugins as well!)

To use the script, you only need two layers in your image - the original, and the one you color-corrected to look more "normal". The original image should be above the "normal" one in your layer list. When you run the plug-in, it will generate a new GIMP curve file (called curve_SOME-DATE). The great thing about this plugin is that it checks pixel-by-pixel the color difference between the two layers, and creates the new curve from that data.

This curve now represents the color difference between your "normal" layer, and the original. You can now apply this curve back to the "normal" layer and the result should be really close to the original.

To help speed things along for anyone interested, I have already created the presets for my expired film:

Expired Polaroid 600 Curve Preset (the center strip)
Expired Polaroid 600 Run Curve Preset (the outer strips)

Save these files in your Curves folder for your GIMP install (locations vary, but you can check by going to Edit → Preferences and checking under Folders - it's usually around the same location as your brushes folder for instance).

Let's apply these curves to a new image to see the effect...

This is another image of my lovely model. I cropped the image to roughly match a Polaroid 600 image area (roughly 1:1.03 aspect ratio - the height is approximately 1.03 times the width).
Here the color curves linked above have been applied. I basically duplicated the base image twice, and applied each of the two color curves above to each duplicate. Then I used a layer mask to mask out the strip in the middle of different colors (allowing the layer below to show through). I still haven't added any grain or degraded pixel quality, but it seems fairly close!

If you've followed me this far - congratulations! As a bonus, I've already written the script-fu to automatically apply this to an image. It can be found at registry.gimp.org:

Download Expired Polaroid 600 Print Emulation script-fu

This script will also apply the un-developed corners that appear on expired film (usually because the developer has begun to dry up in the packets, and there is not enough to fully cover the frame anymore). To make things even more polaroid-y I have also removed any control over how big or where the undeveloped portions will occur. Just like real expired Polaroids! :)

Here's an example of the script in action (it doesn't create the border for you automatically - yet):
Casey Blue Cup - Expired Polaroid 600Casey Blue Cup - Expired Polaroid 600 + Polaroid Border

[Update]
There's a neat video here that shows how the Impossible Project is still cranking out instant film in the Netherlands.
[/Update]

Getting Around in GIMP - Muted Colors

There seems to be a relatively recent interest in photo post-processing that is centered around recreating the look and feel of vintage photo elements. With the explosion of popularity around applications like instagr.am, quite a few photos have been showing up on Flickr and elsewhere that have these vintage types of effects applied to them.

Not surprisingly, this has led to an interest in photographers about how to achieve similar effects in their post processing workflow. In fact, more often than not I've noticed on the Flickr Photoshop Support Group questions pertaining to color toning/grading (especially prevalent are questions like "How do I do this?"). There are many ways to approach image color toning, and starting with something simple might help get people started.

In this post I want to talk about muting colors in an image. Below you'll find three different approaches to muting the colors in an image...


Original starting image.

Colors muted using a desaturated luminosity layer laid over the original with opacity.


Colors muted using layer masks and blending modes.

Colors muted using curves and blending modes.

I will provide a tutorial for using each of these different methods. The one you use is highly dependent on your subjective interpretations of what you want your final image to look like (and in some cases you may use more than one, and blend the result).

Desaturated Layer Method

This is the most straightforward and easiest method for desaturating the colors in your images. It basically consists of duplicating your layer, desaturating it (Colors → Desaturate), putting it above your full color layer, and changing the opacity of the desaturated layer to taste.





The step-by-step procedure is:
  1. Create a duplicate layer of the color layer you want to mute.

  2. Run Colors → Desaturate, and choose either Lightness, Luminosity, or Average (it's a personal preference - more detailed info can be found here).

  3. Adjust the opacity of the desaturated layer to taste.


Layer Blend Modes Method

From Muted color effect, if you like that kind of stuff thread at the Photoshop Support Group on Flickr the user Tennessee_Gator describes an interesting method of muting colors using solid fill layers with masks applied to them. I had to do a little translation from the Photoshop-centric instructions, but I think I was finally able to replicate the same effect in GIMP.

There were two different methods of approaching this that I was working on, but thanks to some quick math by imagdoofus123 it turns out that both methods produce identical results, so I'll describe the easier of the two.



The basic idea is to use a luminosity copy of the color image, and to set two layers of this luminosity over your color image. One of the layers will be on a Multiply blending mode, and the other will be on Screen.
  1. Create a duplicate of your color layer, and run Colors → Desaturate on it, using Luminosity.

  2. Change the blending mode of this layer to Multiply.

  3. Duplicate this Multiply layer, and change the new layer blending mode to Screen.


Color Curves Method

This method was mentioned in the discussion page linked to above as another possible approach (and allows for some more flexibility in tweaking the final results directly).


  1. Duplicate your color layer, and set the blending mode of the new layer to Color.

  2. Run Color → Curves...

  3. Tweak an Inverted S-curve on the Value channel to taste.

  4. Duplicate this layer, and set its blending mode to Value.

  5. Run Color → Curves... again on this Value layer.

  6. Modify the curve (slightly!) to a regular S-curve to adjust the contrast to taste.

These are just a couple of methods for desaturating an image, but I find them to cover most of what I need when doing this. As always, try experimenting with different layer opacity options to adjust the strength of the final effect. It's usually highly subjective just how much to mute, but the nice thing is that it's easy to vary the amounts with opacity and/or layer masks!

Easy Cheating Method (via my script)

If you've stuck with me this long (and you're a champ for reading all of this!), then I have one last little treat. I recently learned some quick script-fu to describe this to others on the GIMP users forum on Flickr - and it was just easier to go ahead and write a script to do the effect.

The script is called Muted Colors, and you can download it from the GIMP registry here.

You can choose any of the methods I've described above, with the exception of using curves. Hopefully some people find this helpful!

Bouncing Baby Beverly

Bouncing Baby Beverly by avhell
Bouncing Baby Beverly, a photo by avhell on Flickr.

Don't worry, no babies were harmed in the making of this photo (unless giggles count as harm). She was a really good sport, and just look at that smile!

I figure if I'm going to be taking hundreds of photos of her, might as well make some of them fun!

This was shot with a 20" softbox camera right, and some sunlight from a large covered window directly behind. I probably could have used a little more fill light from left, but I really like how it all turned out!

Update: I've put together a tutorial on how I shot this image, and Mike over at PetaPixel was kind enough to post it there, so check it out for more info!

PetaPixel - How to Make a Photo of a Bouncing Baby

And I figured I would just add a couple of other cute photos of her flying in some fashion...

Beverly Floating by avhell
Beverly Floating, a photo by avhell on Flickr.

Balancing Act by avhell
Balancing Act, a photo by avhell on Flickr.

Getting Around in GIMP - Color Correction

The list of all my GIMP tutorials can be found here.

I've noticed that many people are interested these days in color processing effects for photos, and thought I'd share some interesting things to get people started on the path to color grading.

I almost always do some sort of color toning on my photos. Sometimes a little, sometimes quite a bit depending on my mood and vision at the time. I'm a big fan of just trying things out a bit to see where it gets me, and often this will change the course I may have been heading down into a completely new direction (I encourage this idea of playing around, especially in GIMP).

(This tutorial is a deeper look at a thread I originally started on the Flickr Gimp Users Group)

To begin, we should probably look briefly at balancing the colors in a photo to make sure we have a good base to start off with...




Basic Color Correction

Sometimes an image can come out of your camera looking either a little hazy or dull (possibly lacking contrast). So how can we get some "pop" back into the image? I will usually start by adjusting the overall range of the image to suit me.

What I mean by this, is that I want to identify the part of the image that will be pure black, pure white, and middle grey. So how can we do this? Well, a couple of ways...

Colors → Auto → White Balance

This method will let GIMP automatically calculate for you it's best estimate of what the white balance should be in the image. Sometimes this can produce OK results (and sometimes it can really mess up). I don't personally use this option, but if you want a no-frills first guess automated for you, it's a nice option to have.

I have also noticed that auto white balance can sometimes blow out highlights in an image as well...

Manual Balance

This is the method I have been using personally for a while now. The theory is basically that I want to identify where in the image I want the blackest blacks to be, the whitest whites, and a good middle grey point. So how can I find these quickly and easily in my photo?

Here's a hint: Colors → Threshold

Threshold will give you a means to see where the extreme pixel values for your image occur. With it we can identify where the brightest and darkest pixels are. The basic idea is to use a Threshold to isolate the brightest and darkest pixels in your image to set the white and black points, and to use a neat trick with a 50% gray difference layer to find the middle gray point.

So let's begin...


Image courtesy of Kelly Ealy - MM# 7866

Open an image you think could stand a little color correction.

Right click on the background layer and Duplicate Layer. This is the layer we will be working on fixing the color, and I'll call this the color correct layer.

With the color correct layer active (remember: white border around it), activate the Threshold dialog.

Colors → Threshold


Setting the White Point


We'll start by finding our white point in the image. The white point marker is already (be default) all the way to the right, and the black point marker is in the middle. What we'll do is pull the black point marker all the way to the right as well.


This should make the entire image show black (with possibly some white showing in places). What this means is that the white pixels, if showing, represent the brightest pixels in your image. If you don't see any white pixels yet, you can begin pulling the black point slider to the left slowly, and they will eventually begin to appear. You'll want to note the location of the first white pixels that begin to show up, and either remember them or use a sample point to save their location.

An important thing to remember here is that this is often a subjective determination of what you want to be pure white in your image. Some bright pixels (any RGB component is 255) will show up in threshold, even though they may not be "pure" white. Watch out for those, as a non-neutral color chosen to be your white point will cast a color on the entire image.

Cancel out of the Threshold dialog.

Now we want to use Colors → Levels to set the white point for our image to the pixels we identified with Threshold.

Open the levels dialog (Colors → Levels), and use the Pick White Point eyedropper to pick the location of the whitest pixels we just identified.


Hit OK to apply to the image. We basically just identified the location in our image we want to be pure white (255, 255, 255) in our final image.

Setting the Black Point


Now we can do the same procedure, but for the darkest/blackest point. Open the threshold dialog again (Colors → Threshold), and this time slide the black point slider all the way left, and do the same for the white point marker. The image should turn all black.


Slowly begin sliding the white point marker to the right until some white pixels begin to show up. These white pixels now represent the darkest pixel values in your image. As before, note their location (or use a sample point) and cancel out of the Threshold dialog.

Open the levels dialog again (Colors → Levels), and this time use the Pick Black Point eyedropper to pick the location of the darkest pixels we just identified.

Hit OK to apply to the image. We just identified where we want the blackest pixels in our image to be (0, 0, 0).

Setting the Gray Point


This one is a little tougher. You may not have an easily found truly neutral gray point (RGB 128, 128, 128) in your image. So we are going to use some layer blending modes to help us find the gray points closest.

Create a new layer above your color correct layer, and fill the layer with a neutral gray (RGB - 128, 128, 128).

Set the layer mode for this gray layer to Difference.




Right click on the layer in your Layers window, and choose New From Visible to create a new layer with what you can see. Make sure this new visible layer is the active one.

Now, run a threshold against this new layer.

Colors → Threshold

You will now follow the same procedure as you used for finding the black point threshold values, but in this case the white pixels will be those closest to Middle Gray.

Zoom into those first white pixels and remember where they are (or use a sample point).

De-activate the difference layer, and make your color correct layer active and visible. It helps if it is also the top-most visible layer (ie: turn off visibility on all layers above it in the Layers list).

Now use Colors → Levels again.

This time, use the Gray picker and choose the pixels you identified as closest to middle gray.

If you've chosen good points then the final result should be an image with much better looking color overall. If there was a nasty color cast previously, this method should remove it for the most part...

Here is my starting image, and after modification using this manual method:


It's subtle, but the original image was not in serious need of any balancing.

Mouseover the image below to see a comparison on an image where I didn't white balance properly before firing the shot (only modifications to the image were the manual color correction procedure):


Please feel free to post any comments/suggestions/rants in the comments if you get a chance to try this method out!