Rüdiger Schneider released the first public version of his GIMP-plug-in called Toy that does a very simple thing: it simplifies creating the so called tilt-shift fakes.
The trick itself is very simple: using the Blend tool and its bilinear method create a layer mask in a copy of a source layer so that most of an image can be affected but a rectangular area. Applying blur to that upper layer will create an heavy out of focus effect that with additional color grading will make objects in the image (houses, cars, people) look like toys. Originally this is done with tilt-shift lenses that make shallow depth of field.
What the plug-in does is providing simple controls with a large preview area: by dragging the green handle in the preview you can tell the plug-in where completely in-focus area is (it will be perpendicular to the line in the preview, invisibly intersecting it across the green handle), and by dragging the red handle you can define where the picture goes completely out of focus.
The plug-in will read that, create a copy of the layer, generate a mask in it and use positions of the handle to render a bilinear gradient. It will also read and apply amount of blur, contrast and saturation that you set in the plug-in. Here is a video we shot to illustrate that, using a picture of Prague rooftops by tjflex :
This first version of the plug-in makes use of Gaussian blur, which is why the effect is not as believable as it would be if the great Focus Blur plug-in by Kyoichiro Suda was used. That might change in the future. As a side note, it would also be great if the invisible in-focus marker line was a wee bit less invisible. The yellow cross in the video was composited into the screencast.
The plug-in will compile and work just fine with GIMP 2.6. If you run in in 2.7, it will start spitting out warnings about API changes. Edit: following the discussion Rüdiger promptly released an update that makes the plug-in work fine in both 2.6 and 2.7/2.8. Yay!
Currently there are no builds for Windows, but watch that page for updates if you are interested.
For a more sophisticated approach I very much recommend Rob Antonishen’s tutorial on the subject.