[gimp-web/gimp-web-static] Ported Perl-Debugged, Photo_To_Sketch, Quickmask, Red_Eye_Removal, Reducing_CCD_Noise



commit ec1c8f1f7db14dbb2fc6d62bcc4ecb4d141246fe
Author: Pat David <patdavid gmail com>
Date:   Fri Sep 25 14:46:07 2015 -0500

    Ported Perl-Debugged, Photo_To_Sketch, Quickmask, Red_Eye_Removal, Reducing_CCD_Noise

 content/about/meta/file-list.md                    |   18 +-
 content/about/meta/index.md                        |    1 +
 content/tutorials/Perl-Debugged/index.md           |  253 ++++++++++++++++++++
 .../tutorials/Photo_To_Sketch/after_highpass.jpeg  |  Bin 0 -> 96769 bytes
 content/tutorials/Photo_To_Sketch/colour_trick.png |  Bin 0 -> 33703 bytes
 content/tutorials/Photo_To_Sketch/edges.jpeg       |  Bin 0 -> 32939 bytes
 .../tutorials/Photo_To_Sketch/equalised_sobel.jpeg |  Bin 0 -> 81649 bytes
 content/tutorials/Photo_To_Sketch/highpass.png     |  Bin 0 -> 25297 bytes
 content/tutorials/Photo_To_Sketch/index.md         |  108 +++++++++
 content/tutorials/Photo_To_Sketch/original.jpeg    |  Bin 0 -> 34077 bytes
 .../Photo_To_Sketch/pencil_and_paint_sketch.jpeg   |  Bin 0 -> 60925 bytes
 content/tutorials/Photo_To_Sketch/photo_edges.jpeg |  Bin 0 -> 87404 bytes
 content/tutorials/Photo_To_Sketch/sobel.jpeg       |  Bin 0 -> 22390 bytes
 .../Photo_To_Sketch/starting_colouring.jpeg        |  Bin 0 -> 71666 bytes
 .../Photo_To_Sketch/viewing_colouring.jpeg         |  Bin 0 -> 82851 bytes
 content/tutorials/Quickmask/blur-15.jpg            |  Bin 0 -> 30376 bytes
 content/tutorials/Quickmask/image.1.jpg            |  Bin 0 -> 75977 bytes
 content/tutorials/Quickmask/image.2.jpg            |  Bin 0 -> 87048 bytes
 content/tutorials/Quickmask/image.3.jpg            |  Bin 0 -> 76964 bytes
 content/tutorials/Quickmask/image.4.jpg            |  Bin 0 -> 69866 bytes
 content/tutorials/Quickmask/image.5.jpg            |  Bin 0 -> 68289 bytes
 content/tutorials/Quickmask/image.6.jpg            |  Bin 0 -> 80877 bytes
 content/tutorials/Quickmask/image.7.jpg            |  Bin 0 -> 67671 bytes
 content/tutorials/Quickmask/index.md               |   99 ++++++++
 content/tutorials/Quickmask/newsprint.png          |  Bin 0 -> 345765 bytes
 content/tutorials/Quickmask/pixelize-10.png        |  Bin 0 -> 328988 bytes
 content/tutorials/Quickmask/spread-11.png          |  Bin 0 -> 328077 bytes
 content/tutorials/Red_Eye_Removal/burnopts-sm.png  |  Bin 0 -> 15749 bytes
 .../Red_Eye_Removal/dialog-channels-sm.png         |  Bin 0 -> 17556 bytes
 content/tutorials/Red_Eye_Removal/dodgeorburn.png  |  Bin 0 -> 205 bytes
 content/tutorials/Red_Eye_Removal/index.md         |   64 +++++
 content/tutorials/Red_Eye_Removal/swimming2.jpg    |  Bin 0 -> 10170 bytes
 content/tutorials/Red_Eye_Removal/zoom1.png        |  Bin 0 -> 36147 bytes
 content/tutorials/Red_Eye_Removal/zoom2.png        |  Bin 0 -> 35960 bytes
 content/tutorials/Reducing_CCD_Noise/after.jpg     |  Bin 0 -> 19452 bytes
 content/tutorials/Reducing_CCD_Noise/before.jpg    |  Bin 0 -> 22151 bytes
 content/tutorials/Reducing_CCD_Noise/despeckle.jpg |  Bin 0 -> 17543 bytes
 .../Reducing_CCD_Noise/example2-after.jpg          |  Bin 0 -> 13133 bytes
 .../Reducing_CCD_Noise/example2-before.jpg         |  Bin 0 -> 17990 bytes
 .../image-despeckled-zoom100.jpg                   |  Bin 0 -> 32004 bytes
 .../Reducing_CCD_Noise/image-final-zoom100.jpg     |  Bin 0 -> 33905 bytes
 .../tutorials/Reducing_CCD_Noise/image-final.jpg   |  Bin 0 -> 38933 bytes
 .../Reducing_CCD_Noise/image-original-zoom100.jpg  |  Bin 0 -> 36875 bytes
 .../Reducing_CCD_Noise/image-original.jpg          |  Bin 0 -> 40904 bytes
 content/tutorials/Reducing_CCD_Noise/index.md      |   83 +++++++
 45 files changed, 615 insertions(+), 11 deletions(-)
---
diff --git a/content/about/meta/file-list.md b/content/about/meta/file-list.md
index 3179423..9355e11 100644
--- a/content/about/meta/file-list.md
+++ b/content/about/meta/file-list.md
@@ -177,15 +177,11 @@ The main page links go to legacy WGO, the link icon (if there) will go to the po
 <del><http://www.gimp.org/tutorials/Creating_Icons/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Creating_Icons/index.md)  
 <del><http://www.gimp.org/tutorials/Custom_Brushes/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Custom_Brushes/index.md)  
 <del><http://www.gimp.org/tutorials/Digital_Black_and_White_Conversion/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Digital_Black_and_White_Conversion/index.md)  
-
 <del><http://www.gimp.org/tutorials/Draw_A_Paint_Brush/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Draw_A_Paint_Brush/index.md)  
-
 <http://www.gimp.org/tutorials/Drawables/index.html>  
 <del><http://www.gimp.org/tutorials/Drawing_Shapes/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Drawing_Shapes/index.md)  
-
 <del><http://www.gimp.org/tutorials/Film_Grain/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Film_Grain/index.md)  
 <del><http://www.gimp.org/tutorials/Floating_Logo/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Floating_Logo/index.md)  
-
 <del><http://www.gimp.org/tutorials/GIMP_Quickies/index.html></del> [<i class="fa 
fa-link"></i>](/tutorials/GIMP_Quickies/)   
 <del><http://www.gimp.org/tutorials/Golden_Text/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Golden_Text/index.md)  
 <del><http://www.gimp.org/tutorials/Image_Map/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Golden_Text/index.md)  
@@ -201,13 +197,13 @@ The main page links go to legacy WGO, the link icon (if there) will go to the po
 <del><http://www.gimp.org/tutorials/Lite_Quickies/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Layer_Masks/index.md)  
 <del><http://www.gimp.org/tutorials/Lite_Quickies/jpegrace.html></del>  
 <del><http://www.gimp.org/tutorials/Luminosity_Masks/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Luminosity_Masks/index.md)  
-<http://www.gimp.org/tutorials/Perl-Debugged/index.html>  
-<del><http://www.gimp.org/tutorials/Perlotine/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Luminosity_Masks/index.md)  
-<del><http://www.gimp.org/tutorials/Perlotine/nested.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Luminosity_Masks/index.md)  
-<http://www.gimp.org/tutorials/Photo_To_Sketch/index.html>  
-<http://www.gimp.org/tutorials/Quickmask/index.html>  
-<http://www.gimp.org/tutorials/Red_Eye_Removal/index.html>  
-<http://www.gimp.org/tutorials/Reducing_CCD_Noise/index.html>  
+<del><http://www.gimp.org/tutorials/Perl-Debugged/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Perl-Debugged/index.md)  
+<del><http://www.gimp.org/tutorials/Perlotine/index.html></del>  
+<del><http://www.gimp.org/tutorials/Perlotine/nested.html></del>  
+<del><http://www.gimp.org/tutorials/Photo_To_Sketch/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Photo_To_Sketch/index.md)  
+<del><http://www.gimp.org/tutorials/Quickmask/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Quickmask/index.md)  
+<del><http://www.gimp.org/tutorials/Red_Eye_Removal/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Red_Eye_Removal/index.md)  
+<del><http://www.gimp.org/tutorials/Reducing_CCD_Noise/index.html></del> [<i class="fa 
fa-link"></i>]({filename}../../tutorials/Reducing_CCD_Noise/index.md)  
 <http://www.gimp.org/tutorials/Selective_Color/index.html>  
 <http://www.gimp.org/tutorials/Selective_Gaussian_Blur/index.html>  
 <http://www.gimp.org/tutorials/Sepia_Toning/index.html>  
diff --git a/content/about/meta/index.md b/content/about/meta/index.md
index 0fb857b..f885d50 100644
--- a/content/about/meta/index.md
+++ b/content/about/meta/index.md
@@ -16,6 +16,7 @@ I (Pat David) am creating this page to keep notes and information for building/m
 * [Using Pelican](./using-pelican/)
 * [Markdown Cheatsheet](./markdown.html)
 * [Translations (more info)](./translations.html)
+* [Old URL List](./file-list.html)
 
 
 The work I am doing here is based on a couple of suggestions over the past year (or more, I'm sure) to 
refresh the design of WGO.
diff --git a/content/tutorials/Perl-Debugged/index.md b/content/tutorials/Perl-Debugged/index.md
new file mode 100644
index 0000000..53b6d54
--- /dev/null
+++ b/content/tutorials/Perl-Debugged/index.md
@@ -0,0 +1,253 @@
+Title: Perl Debugged
+Date: 2002
+Modified: 2015-09-25T13:33:27-05:00
+Author: Seth Burgess
+
+<small>
+Text and images Copyright (C) 2002 [Seth Burgess](mailto:sjburgesNOSPAM gimp org) and may not be used 
without permission of the author.
+</small>
+
+## Intention
+
+The Perl module for GIMP is a nice evolution of the scripting interface of GIMP. It removes the dependence 
on the relatively rarely encountered scheme language of script-fu and replaces it with one that is familiar 
to a much larger audience. In doing so, the perl interface to GIMP also can take advantage of many of the 
features that have been added to perl over the years.
+
+My aim in creating this tutorial is to make debugging scripts easier. We'll touch on the facilities provided 
by the Gimp module, and then focus on using the perl debugger to interactively develop scripts.
+
+To illustrate the points in this tutorial, this is a simple script that will change as we progress:
+
+    :::perl
+    #!/usr/bin/perl
+
+    use Gimp qw(:auto);
+    use Gimp::Fu;
+    use Gimp::Util;
+
+    register "example", "Example", "Dumb example for debugging",
+       "Seth Burgess", "Seth Burgess ", "1.0",
+        "/Xtns/Dumb Example", "*", [], sub {
+
+       $fname = "/home/seth/dumb.jpg";
+       $img = gimp_file_load($fname, $fname);
+       $img->display_new();
+
+       return();
+       };
+
+    exit main;
+
+
+## Gimp::set_trace
+
+The Gimp module provides tracing ability, which is a form of debugging. To activate this, start GIMP from an 
XTerm, and place the following at the top of the script:
+
+    :::perl
+    #!/usr/bin/perl
+
+    use Gimp qw(:auto);
+    use Gimp::Fu;
+    use Gimp::Util;
+
+    **Gimp::set_trace(TRACE_ALL);**
+
+    register "example", "Example", "Dumb example for debugging",
+       "Seth Burgess", "Seth Burgess ", "1.0",
+       "/Xtns/Dumb Example", "*", [], sub {
+
+       $fname = "/home/seth/dumb.jpg";
+       $img = gimp_file_load($fname, $fname);
+       $img->display_new();
+
+       return();
+       };
+
+    exit main;
+
+This will give the maximum amount of tracing information, displayed on the console window you start GIMP 
from. You can cut back on what all gets displayed by using an "or'ed" combination of the following other 
options in place of TRACE_ALL:
+
+<table style="background: #CCFFCC none; max-width:34rem;margin:1rem auto;">
+
+<tbody>
+
+<tr>
+
+<td style="width: 20%;">TRACE_NONE</td>
+
+<td style="width: 40%">turn off tracing</td>
+
+</tr>
+
+<tr>
+
+<td>TRACE_CALL</td>
+
+<td>trace only GIMP Procedural Database (PDB) calls (including arguments and return values)</td>
+
+</tr>
+
+<tr>
+
+<td>TRACE_TYPE</td>
+
+<td>also print the parameter types</td>
+
+</tr>
+
+<tr>
+
+<td>TRACE_NAME</td>
+
+<td>print the parameter names</td>
+
+</tr>
+
+<tr>
+
+<td>TRACE_DESC</td>
+
+<td>print the parameter descriptions</td>
+
+</tr>
+
+</tbody>
+
+</table>
+
+Using TRACE_ALL can let you see easily what parameters are wrong so you can fix misbehaviour in scripts. It 
provides a powerful history of what could be going wrong in your script.
+
+## Perl Debugger
+
+Perl comes with a debugger built in, which we can effectively utilize for interactive execution of our 
scripts. To invoke this, put a -d on the invocation line for the script as follows:
+
+    :::perl
+    #!/usr/bin/perl **-d**
+
+    use Gimp qw(:auto);
+    use Gimp::Fu;
+    use Gimp::Util;
+    # Gimp::set_trace(TRACE_ALL); # uncomment to do tracing
+
+    register "example", "Example", "Dumb example for debugging",
+       "Seth Burgess", "Seth Burgess <sjburges\ gimp org>, "1.0",
+       "/Xtns/Dumb Example", "*", [], sub {
+
+       $fname = "/home/seth/dumb.jpg";
+       $img = gimp_file_load($fname, $fname);
+       $img->display_new();
+
+       return();
+    };
+
+    exit main;
+
+If you change a Gimp-Perl script to utilize this, you'll notice GIMP halting on startup. This is because 
GIMP is querying the plug-in, and it is halting due to having debugging enabled. Just type 'c' in the window, 
and then 'q' to let GIMP continue loading:
+
+    :::perl
+    Enter h or `h h' for help, or `man perldebug' for more help.
+
+    main::(/home/seth/.gimp-1.3/plug-ins/demo:21):
+    21:     };
+      DB<1> c
+    Debugged program terminated.  Use q to quit or R to restart,
+      use O inhibit_exit to avoid stopping after program termination,
+      h q, h R or h O to get additional info.  
+      DB<1> q
+
+This is not a part of the script we're really intrested in - its the registration of the plug-in with GIMP. 
It turns out to be a really annoying behaviour, since every time we modify the script we'll need to do this 
on startup. Luckily we have another way of attacking this provided by the Gimp module - that is the Perl 
Server.  
+
+First, move your script out of your plug-ins directory to somewhere else. Then startup GIMP. Start the Perl 
Server by going to <span class="filter">Xtns -> Perl Server</span>. You'll see something like the following 
in the XTerm window of GIMP:
+
+    :::
+    989020828: server version 1.201 started
+    989020828: accepting connections on /tmp/gimp-perl-serv-uid-1000/gimp-perl-serv
+
+Now from another XTerm, execute the script (just type its name). This will immediately start debugging the 
new script. You can set a breakpoint on a line of your choice and execute 'c' to let it execute until that 
line.
+
+    :::
+      DB<1> b 13
+      DB<2> c
+        13:        $fname = "/home/seth/dumb.jpg";
+
+You can now examine variables with perl functions (print $fname) and modify them during runtime. You can 
change the point of execution, and do most everything you'd expect from a debugger.
+
+## $DB::single
+
+Instead of having to remember what line the intresting part of your script starts on and set a breakpoint 
there, perl provides a way to programmatically jump into single-step mode. Add the following to the top of 
your sub:
+
+    :::perl
+    #!/usr/bin/perl -d
+
+    use Gimp qw(:auto);
+    use Gimp::Fu;
+    use Gimp::Util;
+    # Gimp::set_trace(TRACE_ALL); # uncomment to do tracing
+
+    register "example", "Example", "Dumb example for debugging",
+      "Seth Burgess", "Seth Burgess <sjburges\ gimp org>", "1.0",
+      "/Xtns/Dumb Example", "*", [], sub {
+
+      **$DB::single = 1; # Enter single step if using -d**
+
+      $fname = "/home/seth/dumb.jpg";
+      $img = gimp_file_load($fname, $fname);
+      $img->display_new();
+
+      return();
+    };
+
+    exit main;
+
+Now when you run your script, hit 'c' and it will break on the entry of the sub {} call. Using $DB::single 
will only have any effect when using -d - its ignored otherwise, so you can leave it in scripts without any 
side effects.
+
+## Example Session
+
+After invoking the perl server, I run 'Example' from a commandline shell:
+
+    :::
+    Default die handler restored.
+
+    Loading DB routines from perl5db.pl version 1.07
+    Editor support available.
+
+    Enter h or `h h' for help, or `man perldebug' for more help.
+
+    main::(./Example:20):   };
+      DB<1> c
+    main::CODE(0x83f240c)(./Example:15):
+    15:        $fname = "/home/seth/dumb.jpg";
+      DB<1> n
+    main::CODE(0x83f240c)(./Example:16):
+    16:        $img = gimp_file_load($fname, $fname);
+      DB<1> print $fname
+    /home/seth/dumb.jpg
+      DB<2> $fname = "/home/seth/foo.png";
+
+      DB<3> print $fname
+    /home/seth/foo.png
+      DB<4> n
+    main::CODE(0x83f240c)(./Example:17):
+    17:        $img->display_new();
+      DB<4> n
+    main::CODE(0x83f240c)(./Example:19):
+    19:        return();
+      DB<4> c
+    Debugged program terminated.  Use q to quit or R to restart,
+      use O inhibit_exit to avoid stopping after program termination,
+      h q, h R or h O to get additional info.
+      DB<4> q
+
+This example session shows changing a value of a variable at run-time so to load a different file than the 
one hard-coded into the script. Note that I continue ('c') and it stops immediately after $DB::single is set.
+
+Far more complex debugging is possible, but this should give you a good taste of what its all about.
+
+## Conclusion
+
+Thats all there is to it! I hope this has been useful to you.
+
+You can [download a compressed copy](perldebug.tar.gz) of this tutorial. You can also get a [copy of the 
script](Example). Feel free to use either/both however you want.
+
+This tutorial has gone over the basics of using the Gimp module for tracing, the Perl Server for starting 
your scripts, and using the perl debugger to interactively execute your scripts. If you have comments, 
questions, or suggestions about this tutorial, please drop me a line.
+
+Happy GIMPing, Seth
+
+The original tutorial can be found [here](http://classic.gimp.org/~sjburges/perl_debug/intro.html).
+
diff --git a/content/tutorials/Photo_To_Sketch/after_highpass.jpeg 
b/content/tutorials/Photo_To_Sketch/after_highpass.jpeg
new file mode 100644
index 0000000..4fabf13
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/after_highpass.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/colour_trick.png 
b/content/tutorials/Photo_To_Sketch/colour_trick.png
new file mode 100644
index 0000000..e4a622f
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/colour_trick.png differ
diff --git a/content/tutorials/Photo_To_Sketch/edges.jpeg b/content/tutorials/Photo_To_Sketch/edges.jpeg
new file mode 100644
index 0000000..19d1c4f
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/edges.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/equalised_sobel.jpeg 
b/content/tutorials/Photo_To_Sketch/equalised_sobel.jpeg
new file mode 100644
index 0000000..72169f3
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/equalised_sobel.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/highpass.png b/content/tutorials/Photo_To_Sketch/highpass.png
new file mode 100644
index 0000000..f2a5a6f
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/highpass.png differ
diff --git a/content/tutorials/Photo_To_Sketch/index.md b/content/tutorials/Photo_To_Sketch/index.md
new file mode 100644
index 0000000..d9c41ef
--- /dev/null
+++ b/content/tutorials/Photo_To_Sketch/index.md
@@ -0,0 +1,108 @@
+Title: Photo to Sketch
+Date: 2002
+Modified: 2015-09-25T13:33:27-05:00
+Author: Dave Neary
+
+
+<small>
+Text and images Copyright (C) 2002 [Dave Neary](mailto:bolshNOSPAM gimp org) and may not be used without 
permission of the author.
+</small>
+
+## Intention
+
+Tutorial on how to make a nice baby & daddy photo into a nice baby & daddy painting.
+
+## 1. Original image
+
+<figure>
+<img src="original.jpeg" alt="original.jpeg"/>
+</figure>
+
+Nice picture of a baby & dad. Ah.
+
+## 2. After a Sobel edge detect
+
+<figure>
+<img src="sobel.jpeg" alt="sobel.jpeg"/>
+</figure>
+
+Straightforward Sobel edge detect (<span class="filter"><Image> Filters -> Edge-Detect -> Sobel</span>) of 
original (don't forget to save a copy of the original) The Sobel edge detect should be done on the background 
image (without an alpha channel) rather than a copy of the background (which has an alpha channel).
+
+## 3. Equalised & desaturated Sobel
+
+<figure>
+<img src="equalised_sobel.jpeg" alt="equalised_sobel.jpeg"/>
+</figure>
+
+Bring out detail with an auto-equalise (<span class="filter"><Image> Layer -> Colors -> Auto -> 
Auto-Equalize</span>) of the sobel edge detect, and convert it to greys using desaturate (<span 
class="filter"><Image> Layer -> Colors -> Desaturate</span>).
+
+## 4. Curves window for how to do a highpass filter
+
+<figure>
+<img src="highpass.png" alt="highpass.png"/>
+</figure>
+
+We only want the strong edges, otherwise it'll look crap. To get them, we eliminate the edges with small 
magnitude. The easiest way to do this is with the curves tool (<span class="filter"><Image> Image -> Colors 
-> Curves</span>) like this.
+
+We set the curve type to free (which allows discontinuities), and then for the bottom 3/4 of the curve (or 
thereabouts) to 0. Just drag the mouse/pen along the bottom of the curves tool.
+
+## 5. Image after the highpass
+
+<figure>
+<img src="after_highpass.jpeg" alt="after_highpass.jpeg"/>
+</figure>
+
+The result is much cleaner. The only problem is it's white-on-black, when we want black-on-transparent 
ideally.
+
+## 6. L&C dialog for creating an edges mask
+
+<figure>
+<img src="edges.jpeg" alt="edges.jpeg"/>
+</figure>
+
+Small trick to get to black-on-transparent. Invert the Sobel edge detect (you did keep a copy, right?) with 
<span class="filter"><Image> Layer -> Colors -> Invert</span> and apply our highpass-filtered copy as a mask. 
To do this, open the Layers & Channels dialog (if it's not open already), and add a layer mask to the layer 
with the inverted edge detect layer (<span class="filter"><Image> Edit -> Copy</span> with the highpass layer 
selected, <span class="filter"><Layer> Add Layer Mask</span> with the inverted edge layer selected, then 
select the mask and <span class="filter"><Image> Edit -> Paste</span>) Since we kept the strong edges in the 
highpass filtered layer, this means that we end up with a rather nice black-on-transparent layer.
+
+## 7. Save of the image above to show effect
+
+<figure>
+<img src="photo_edges.jpeg" alt="photo_edges.jpeg"/>
+</figure>
+
+This is the result of the trick above. It's shown here with a white layer behind it. We could stop here, and 
this is a decent sketch effect. For the colouring, we need some more work (mostly slogging, though).
+
+## 8. L&C dialog with set-up for the colouring trick
+
+<figure>
+<img src="colour_trick.png" alt="colour_trick.png"/>
+<figcaption>
+images,original image & colouring layer in overlay mode
+</figcaption>
+</figure>
+
+
+We put our original image back in the background, and set the white layer to overlay (as we see here) - this 
means we can see the coloured areas behind the white layer - this is extremely helpful when we're painting 
the white layer, as sometimes the edges are rather fine, or are in the middle of an area that's more or less 
the same colour.
+
+## 9. Colouring looks after doing one area of the image
+
+<figure>
+<img src="starting_colouring.jpeg" alt="starting_colouring.jpeg"/>
+</figure>
+
+Using the colour-picker tool (looks like an eye-dropper), we select the colour we want to paint from the 
original image (just activate the "original image" layer and try to pick a colour representative of an area), 
and then we re-activate our colouring layer, which is still in overlay mode. Using a big brush (with the 
brush tool for more natural edges) we fill in the area of that colour roughly (doesn't have to be perfect). 
You should see the colour darkening as we draw with a colour similar to the background colour.
+
+## 10. Colouring layer in normal mode
+
+<figure>
+<img src="viewing_colouring.jpeg" alt="viewing_colouring.jpeg"/>
+</figure>
+
+This is what we see if we set the colour drawing layer to normal mode. And we're on our way.
+
+## 11. Finished with a completed colour layer
+
+<figure>
+<img src="pencil_and_paint_sketch.jpeg" alt="pencil_and_paint_sketch.jpeg"/>
+</figure>
+
+After some effort, all the regions get filled in. Final touches to make faces and the like look better for 
shadows and highlights were accomplished by selecting a representative shadow/highlight colour, and adding 
the extra bits with the airbrush tool (looks like an airbrush). After all our work, we end up with this very 
nice looking painting effect.
+
diff --git a/content/tutorials/Photo_To_Sketch/original.jpeg b/content/tutorials/Photo_To_Sketch/original.jpeg
new file mode 100644
index 0000000..956f363
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/original.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/pencil_and_paint_sketch.jpeg 
b/content/tutorials/Photo_To_Sketch/pencil_and_paint_sketch.jpeg
new file mode 100644
index 0000000..6e114cb
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/pencil_and_paint_sketch.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/photo_edges.jpeg 
b/content/tutorials/Photo_To_Sketch/photo_edges.jpeg
new file mode 100644
index 0000000..50da377
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/photo_edges.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/sobel.jpeg b/content/tutorials/Photo_To_Sketch/sobel.jpeg
new file mode 100644
index 0000000..87886f7
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/sobel.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/starting_colouring.jpeg 
b/content/tutorials/Photo_To_Sketch/starting_colouring.jpeg
new file mode 100644
index 0000000..60a17a4
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/starting_colouring.jpeg differ
diff --git a/content/tutorials/Photo_To_Sketch/viewing_colouring.jpeg 
b/content/tutorials/Photo_To_Sketch/viewing_colouring.jpeg
new file mode 100644
index 0000000..8cfe0e7
Binary files /dev/null and b/content/tutorials/Photo_To_Sketch/viewing_colouring.jpeg differ
diff --git a/content/tutorials/Quickmask/blur-15.jpg b/content/tutorials/Quickmask/blur-15.jpg
new file mode 100644
index 0000000..27aa033
Binary files /dev/null and b/content/tutorials/Quickmask/blur-15.jpg differ
diff --git a/content/tutorials/Quickmask/image.1.jpg b/content/tutorials/Quickmask/image.1.jpg
new file mode 100644
index 0000000..1da829b
Binary files /dev/null and b/content/tutorials/Quickmask/image.1.jpg differ
diff --git a/content/tutorials/Quickmask/image.2.jpg b/content/tutorials/Quickmask/image.2.jpg
new file mode 100644
index 0000000..a2f0fd6
Binary files /dev/null and b/content/tutorials/Quickmask/image.2.jpg differ
diff --git a/content/tutorials/Quickmask/image.3.jpg b/content/tutorials/Quickmask/image.3.jpg
new file mode 100644
index 0000000..fe7c92b
Binary files /dev/null and b/content/tutorials/Quickmask/image.3.jpg differ
diff --git a/content/tutorials/Quickmask/image.4.jpg b/content/tutorials/Quickmask/image.4.jpg
new file mode 100644
index 0000000..5ae61ab
Binary files /dev/null and b/content/tutorials/Quickmask/image.4.jpg differ
diff --git a/content/tutorials/Quickmask/image.5.jpg b/content/tutorials/Quickmask/image.5.jpg
new file mode 100644
index 0000000..ef2db0d
Binary files /dev/null and b/content/tutorials/Quickmask/image.5.jpg differ
diff --git a/content/tutorials/Quickmask/image.6.jpg b/content/tutorials/Quickmask/image.6.jpg
new file mode 100644
index 0000000..d9bda2b
Binary files /dev/null and b/content/tutorials/Quickmask/image.6.jpg differ
diff --git a/content/tutorials/Quickmask/image.7.jpg b/content/tutorials/Quickmask/image.7.jpg
new file mode 100644
index 0000000..884e62b
Binary files /dev/null and b/content/tutorials/Quickmask/image.7.jpg differ
diff --git a/content/tutorials/Quickmask/index.md b/content/tutorials/Quickmask/index.md
new file mode 100644
index 0000000..3b9c98d
--- /dev/null
+++ b/content/tutorials/Quickmask/index.md
@@ -0,0 +1,99 @@
+Title: Quickmask Tutorial
+Date: 2002
+Modified: 2015-09-25T13:33:27-05:00
+Author: Zach Beane
+
+<small>
+Text and images Copyright (C) 2002 [Zach Beane](mailto:xachNOSPAM gimp org) and may not be used without 
permission of the author.
+</small>
+
+## Intention
+
+<figure>
+<img src="blur-15.jpg" alt="blur-15.jpg"/>
+</figure>
+
+This tutorial shows how you can do vignette effects using a feature of GIMP called QuickMask. QuickMask is a 
convenient way to modify selections using pixel-changing tools such as the paintbrush, eraser, or any plug-in 
filter. It lets you make very precise adjustments to your selections. This tutorial doesn't use QuickMask for 
complex masking; it's intended to show how you can use it to create quick and easy vignette effects.
+
+## Step 1
+
+<figure>
+<img src="image.1.jpg" alt="image.1.jpg"/>
+</figure>
+
+For your first step, load up an image. Any image will do. GIMP 1.1.7, a development version of GIMP, 
introduced QuickMask. The QuickMask control button is located at the lower-left side of the image.
+
+## Step 2
+
+<figure>
+<img src="image.2.jpg" alt="image.2.jpg"/>
+</figure>
+
+First, make a rectangular selection around the edge of the image. Then click on the red-bordered QuickMask 
icon in the lower-left corner of your image.
+
+## Step 3
+
+<figure>
+<img src="image.3.jpg" alt="image.3.jpg"/>
+</figure>
+
+After you click the red QuickMask button, a translucent red mask appears around your selection. This red 
mask represents the outside of your selection. When you click the dashed QuickMask button to go back into 
normal selection mode, anything red will not be selected, and anything clear will be. So, let's start playing 
with this mask. First, right click on the image and select 
+
+<div class="MenuCmd"><span>Filters &rarr; Distorts &rarr; Waves</span></div>
+
+from the menu. Apply the filter, and watch what happens to the mask.
+
+## Step 4
+
+<figure>
+<img src="image.4.jpg" alt="image.4.jpg"/>
+</figure>
+
+The mask gets all wavy. Let's add one more effect: `Filters → Blur → Gaussian Blur (RLE)`.
+
+## Step 5
+
+<figure>
+<img src="image.5.jpg" alt="image.5.jpg"/>
+</figure>
+
+Now that there is a soft edge on the mask, click the dashed QuickMask button to convert the mask back into a 
selection.
+
+## Step 6
+
+<figure>
+<img src="image.6.jpg" alt="image.6.jpg"/>
+</figure>
+
+See how the selection follows the mask? This is a powerful feature of QuickMask. You can use it to modify 
any existing selection, and you can even use it to create new selections. Our last step is to use `Select → 
Invert` and `Edit → Fill with BG Color`. The result, a soft white fade into the background, is shown in the 
final step.
+
+## Final
+
+<figure>
+<img src="image.7.jpg" alt="image.7.jpg"/>
+</figure>
+
+And there you have it. Some more examples are listed below. Happy GIMPing!
+
+## Examples
+
+<figure>
+<img src="spread-11.png" alt="spread-11.png"/>
+</figure>
+
+The above image used `Filters → Noise → Spread`, with horizontal and vertical settings at 11, to get the 
effect.
+
+<figure>
+<img src="newsprint.png" alt="newsprint.png"/>
+</figure>
+
+I used some blurring and the `Filters → Distorts → Newsprint` plugin to get this effect.
+
+<figure>
+<img src="pixelize-10.png" alt="pixelize-10.png"/>
+</figure>
+
+As in the tutorial, this one used Waves, but instead of blurring, I used `Filters → Blur → Pixelize` instead.
+
+The original tutorial can be found [here](http://www.xach.com/gimp/tutorials/quickmask/).
+
diff --git a/content/tutorials/Quickmask/newsprint.png b/content/tutorials/Quickmask/newsprint.png
new file mode 100644
index 0000000..27ef826
Binary files /dev/null and b/content/tutorials/Quickmask/newsprint.png differ
diff --git a/content/tutorials/Quickmask/pixelize-10.png b/content/tutorials/Quickmask/pixelize-10.png
new file mode 100644
index 0000000..3f209bd
Binary files /dev/null and b/content/tutorials/Quickmask/pixelize-10.png differ
diff --git a/content/tutorials/Quickmask/spread-11.png b/content/tutorials/Quickmask/spread-11.png
new file mode 100644
index 0000000..cf78533
Binary files /dev/null and b/content/tutorials/Quickmask/spread-11.png differ
diff --git a/content/tutorials/Red_Eye_Removal/burnopts-sm.png 
b/content/tutorials/Red_Eye_Removal/burnopts-sm.png
new file mode 100644
index 0000000..cf18fff
Binary files /dev/null and b/content/tutorials/Red_Eye_Removal/burnopts-sm.png differ
diff --git a/content/tutorials/Red_Eye_Removal/dialog-channels-sm.png 
b/content/tutorials/Red_Eye_Removal/dialog-channels-sm.png
new file mode 100644
index 0000000..442145f
Binary files /dev/null and b/content/tutorials/Red_Eye_Removal/dialog-channels-sm.png differ
diff --git a/content/tutorials/Red_Eye_Removal/dodgeorburn.png 
b/content/tutorials/Red_Eye_Removal/dodgeorburn.png
new file mode 100644
index 0000000..61b71d1
Binary files /dev/null and b/content/tutorials/Red_Eye_Removal/dodgeorburn.png differ
diff --git a/content/tutorials/Red_Eye_Removal/index.md b/content/tutorials/Red_Eye_Removal/index.md
new file mode 100644
index 0000000..40bbcc8
--- /dev/null
+++ b/content/tutorials/Red_Eye_Removal/index.md
@@ -0,0 +1,64 @@
+Title: Red Eye Removal
+Date: 2002
+Modified: 2015-09-25T13:33:27-05:00
+Author: Carol Spears
+
+
+<small>
+Text and images Copyright (C) 2002 [Carol Spears](mailto:carolNOSPAM gimp org) and may not be used without 
permission of the author.
+</small>
+
+_Editor's note: since this tutorial was written, the Red Eye Removal plug-in has been included in the 
default GIMP package (see `Filters → Enhance → Red Eye Removal`). This tutorial is still useful if you want 
to do things by hand._
+
+## Intention
+
+It used to be that the photos with red eye weren't really worth fixing as only cheesy cameras had the flash 
built in and underneath the red eyes was a crappy photo. Well, welcome to the future when you can get a 
pretty good image from a camera with the flash built in. They do not have a button that works to prevent this 
yet, so don't even try it. The best way to fix red eye on photos is to have those intense people look at the 
photographers shoulder. The cause of red eye is the flash reflecting from the back of the eye and into the 
lens. So, until this lovely child is able to understand "look at my shoulder" it is good to know that red eye 
can be fixed, somewhat. I learned the following method from tigert while lurking on the irc late late one 
night.
+
+## Step 1
+
+<figure>
+<img src="zoom1.png" alt="zoom1.png"/>
+</figure>
+
+I zoomed in on the image, 4:1 ratio, as this is almost pixel by pixel work. I ended up using the 5 x 5 fuzzy 
brush that came with the GIMP tarball. As usual, your choice depends on the resolution of your image. A fuzzy 
brush is highly recommended. On this web sized image, the 3 x 3 fuzzy brush didn't work fast enough. As 
always, you can `Edit → Undo` until you make the right selections.
+
+## Step 2
+
+<figure>
+<img src="dialog-channels-sm.png" alt="dialog-channels-sm.png"/>
+</figure>
+
+A long time ago, someone suggested on the gimp-user list that the Layers, Channels and Paths Dialog always 
remain open while you use GIMP. Some three years later, I still follow and give this advice. So, if your 
Layers,Channels and Paths Dialog is not open, open it and leave it open. Select the Channels Tab. Deactivate 
the Green and Blue Channels by clicking to the right of the thumbnails in the dialog window.  
+
+The image should still look like the screenshot of the close up in step 1. If it looks all red, you have 
just turned the view of the color off. (burning the red eye area will not work if the Layers,Channels and 
Paths dialog is set up that way, I happen to know).
+
+## Step 3
+
+<figure>
+<img src="burnopts-sm.png" alt="burnopts-sm.png"/>
+</figure>
+
+Make certain you have a good brush selected (for this image I used the 5 x 5 fuzzy) Then select the Dodge 
and Burn Tool. 
+
+<img src="dodgeorburn.png" alt="dodgeorburn.png"/> Double click on the button to get the Tool Options 
dialog. My dialog defaults to dodge and midtones, for this project, choose burn and hightlights (as 
illustrated). Touch all of the red in the eyes with the burn tool. I think that I used the burn tool on the 
midtones just a little bit also. GIMP doesn't have a magic button to fix red eyes with, but it has the tools. 
It has been my experience that each image is slightly different and I sort of like the control that GIMP 
gives you...  
+
+tigert warned that this method can leave the white spots in the eyes slightly green. I have found this to be 
true, however so far it hasn't been enough green to worry about. Given a photo where the green will make a 
difference, you can use the same tool combination on the green channel, just move the opacity slider to a 
smaller percentage. `Edit → Undo` until you get it right.
+
+## Final
+
+<figure>
+<img src="zoom2.png" alt="zoom2.png"/>
+</figure>
+
+... looking so much better!  
+
+The very best fix, of course would be to prevent it from happening. Due to the nature of the problem, my 
guess is that it will be the same people over and over again with this problem. Some personalities have no 
problem looking deeply into the camera lens (like this beautiful baby for instance) and maintaining the gaze 
through the flash. My guess is that as soon as these people know what is going on, they can fix it 
themselves.  
+
+Other personalities have other portrait problems. There is a small handful of people who have no problem 
looking into the camera lens, but anticipate the flash and blink at the wrong moment. This causes the 
portrait to look like the object is starting to sneeze. (this is what happens to me) If you know of a method 
to prevent this, please email me.
+
+<figure>
+<img src="swimming2.jpg" alt="swimming2.jpg"/>
+</figure>
+
+What a cute baby. This is Maurits and his baby. He is one of a growing list of developers that are changing 
their babies while working on GIMP. I watched work on WinGIMP occuring between diaper changings and feedings 
also. *chuckle*
+
diff --git a/content/tutorials/Red_Eye_Removal/swimming2.jpg b/content/tutorials/Red_Eye_Removal/swimming2.jpg
new file mode 100644
index 0000000..88eb7d0
Binary files /dev/null and b/content/tutorials/Red_Eye_Removal/swimming2.jpg differ
diff --git a/content/tutorials/Red_Eye_Removal/zoom1.png b/content/tutorials/Red_Eye_Removal/zoom1.png
new file mode 100644
index 0000000..d37f2bd
Binary files /dev/null and b/content/tutorials/Red_Eye_Removal/zoom1.png differ
diff --git a/content/tutorials/Red_Eye_Removal/zoom2.png b/content/tutorials/Red_Eye_Removal/zoom2.png
new file mode 100644
index 0000000..a047194
Binary files /dev/null and b/content/tutorials/Red_Eye_Removal/zoom2.png differ
diff --git a/content/tutorials/Reducing_CCD_Noise/after.jpg b/content/tutorials/Reducing_CCD_Noise/after.jpg
new file mode 100644
index 0000000..a143b0d
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/after.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/before.jpg b/content/tutorials/Reducing_CCD_Noise/before.jpg
new file mode 100644
index 0000000..c453ffe
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/before.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/despeckle.jpg 
b/content/tutorials/Reducing_CCD_Noise/despeckle.jpg
new file mode 100644
index 0000000..ffedde4
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/despeckle.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/example2-after.jpg 
b/content/tutorials/Reducing_CCD_Noise/example2-after.jpg
new file mode 100644
index 0000000..d938297
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/example2-after.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/example2-before.jpg 
b/content/tutorials/Reducing_CCD_Noise/example2-before.jpg
new file mode 100644
index 0000000..c161549
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/example2-before.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/image-despeckled-zoom100.jpg 
b/content/tutorials/Reducing_CCD_Noise/image-despeckled-zoom100.jpg
new file mode 100644
index 0000000..2a6651d
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/image-despeckled-zoom100.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/image-final-zoom100.jpg 
b/content/tutorials/Reducing_CCD_Noise/image-final-zoom100.jpg
new file mode 100644
index 0000000..3cee5e1
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/image-final-zoom100.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/image-final.jpg 
b/content/tutorials/Reducing_CCD_Noise/image-final.jpg
new file mode 100644
index 0000000..7e3f726
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/image-final.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/image-original-zoom100.jpg 
b/content/tutorials/Reducing_CCD_Noise/image-original-zoom100.jpg
new file mode 100644
index 0000000..afffaee
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/image-original-zoom100.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/image-original.jpg 
b/content/tutorials/Reducing_CCD_Noise/image-original.jpg
new file mode 100644
index 0000000..bf525cd
Binary files /dev/null and b/content/tutorials/Reducing_CCD_Noise/image-original.jpg differ
diff --git a/content/tutorials/Reducing_CCD_Noise/index.md b/content/tutorials/Reducing_CCD_Noise/index.md
new file mode 100644
index 0000000..78a8275
--- /dev/null
+++ b/content/tutorials/Reducing_CCD_Noise/index.md
@@ -0,0 +1,83 @@
+Title: Reducing CCD Noise
+Date: 2002
+Modified: 2015-09-25T13:33:27-05:00
+Author: Eric R. Jeschke
+
+<small>
+Text and images Copyright (C) 2002 [Eric R. Jeschke](mailto:ericNOSPAM redskiesatnight com) and may not be 
used without permission of the author.
+</small>
+
+## Intention
+
+<figure>
+<img src="before.jpg" alt="before.jpg"/>
+<img src="after.jpg" alt="after.jpg"/>
+</figure>
+
+Images captured by a CCD or CMOS imaging chip will often have some noise present. This noise typically can 
be seen as RGB "flecks", especially noticable in the in the shadow areas of an image. The red and blue 
channels are especially susceptible. Higher ISO settings and higher ambient temperatures increase the 
likelihood of acquiring this noise along with your image.
+
+If you find it necessary to shoot with a higher ISO and you find that you have an unpleasant amount of noise 
in your image, this tutorial will help you improve the image.
+
+## The Procedure
+
+One procedure that works reasonably well is to apply the Despeckle filter. Unfortunately, this filter will 
soften the image. Fortunately, you can get sharpen the image to partially offset this.
+
+## Step 1
+
+<figure>
+<img src="image-original.jpg" alt="image-original.jpg"/>
+<img src="image-original-zoom100.jpg" alt="image-original-zoom100.jpg"/>
+</figure>
+
+Here is the original image. Notice how bad the noise is, especially in the shadows of the face and in the 
white wall (back right).
+
+## Step 2
+
+<figure>
+<img src="despeckle.jpg" alt="despeckle.jpg"/>
+<img src="image-despeckled-zoom100.jpg" alt="image-despeckled-zoom100.jpg"/>
+</figure>
+
+Right-click in the image and select `Filters → Enhance → Despeckle`.  
+You can play around with the settings, but you'll likely want to keep the radius pretty small. If you raise 
it too high you'll destroy details like the catchlights in the eye. The "Recursive" option seems to cause a 
more aggressive filter effect. Try it if you have an especially noisy image.
+
+Examine the resulting image, zooming in to examine shadow areas. You'll notice that the noise is appreciably 
less objectionable. You cannot really eliminate it, but it is "smoothed out".
+
+Unfortunately, you may also notice that the image is softer; the despeckle filter actually blurs the image. 
Fortunately we can offset this to some degree by sharpening.
+
+## Step 3
+
+<figure>
+<img src="image-final-zoom100.jpg" alt="image-final-zoom100.jpg"/>
+</figure>
+
+For best results, especially with a noisy image, you'll want to use smart sharpening, explained elsewhere on 
this site.  
+This particular image was edge sharpened on all RGB channels. If you find edge ("smart") sharpening too 
difficult, just apply a little global sharpening to offset the softening.
+
+## Step 4
+
+<figure>
+<img src="image-final.jpg" alt="image-final.jpg"/>
+<img src="image-original.jpg" alt="image-original.jpg"/>
+</figure>
+
+Zoomed out (upper left). Compare to the original (upper right) Look at the arm and the white wall in back 
right. Much better.
+
+## Tips and Suggestions
+
+*   It may not be necessary to apply the despeckle filter across all RGB channels; as I mentioned earlier, 
CCD noise tends to show up predominantly in the blue or red channels. You can open the Layers dialog 
(<kbd>Ctrl+L</kbd>), click on the Channels tab and just select the channel(s) that you want to apply the 
filter to. To examine the individual channels for noise, right click in the image and select `Image → Mode → 
Decompose` choose RGB for the decomposition.
+*   Similarly, you can try decomposing to HSV or LAB, running the despeckle filter on one or more parts 
(e.g. value channel from HSV) and recomposing.
+*   **Note:** along these lines I have seen it suggested from several sources that decomposing to LAB, 
applying a slight gaussian blur to the A+B channels and then sharpening the L channel is a good approach to 
reducing CCD artifacts. I have to say that so far in my experiments this approach has not worked for me; I 
find the despeckle method far superior.
+
+## Other Examples
+
+<figure>
+<img src="example2-before.jpg" alt="example2-before.jpg"/>
+<img src="example2-after.jpg" alt="example2-after.jpg"/>
+</figure>
+
+## Further Reading on Reducing CCD Noise
+
+*   [Actions for Photoshop 6 for reducing CCD noise.](http://www.2morrow.dk/75ppi/coolpix/actions/)
+
+The original tutorial used to appear on 
[gimpguru](https://web.archive.org/web/20140704083816/http://gimpguru.org/tutorials/reducingccdnoise/).



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]