Step 1: Add A New Layer Above The Background Layer
With the image open in Photoshop, if we look over in the Layers palette, we can see that we currently have one layer, the Background layer, which contains our image:
The first thing we need to do is add a new blank layer above the Background layer. To do that, click on the New Layer icon at the bottom of the Layers palette:
Photoshop will add a new blank layer above the Background layer and will name it "Layer 1". Double-click directly on the name of the layer and rename it to "Rainbow", since we'll be using this layer to add our rainbow:
Step 2: Select The Rainbow Gradient
You may not know it, but Photoshop comes with a ready-made rainbow for us to use, but it's not available by default. We need to load it manually. To do that, first grab your Gradient tool from the Tools palette, or press G on your keyboard to quickly select it:
Then, with the Gradient tool selected, click on the Gradient Picker in the Options Bar at the top of the screen:
This brings up Photoshop's Gradient Editor. We're going to select the rainbow gradient, or at least, we will once we've loaded it. By default, the rainbow gradient isn't in the list, but no worries. Loading it is easy. Simply click on the right-pointing arrow in the top right of the Gradient Editor:
Then click on the Special Effects gradients near the bottom of the list that appears to load them:
Photoshop will ask you if you want to replace the original gradients with the Special Effects gradients or simply append them to the bottom of the list. Click Append so you'll still have the original gradients available, and the new Special Effects ones will be added below them:
With the new Special Effects gradients added, the one we want - Russell's Rainbow - is the last one at the bottom. If you have your Tool Tips enabled in Photoshop's Preferences, you'll see the name "Russell's Rainbow" appear if you hover your mouse over the gradient for a second or two. Click on it to select it:
In case you're wondering, "Russell" is Russell Brown, the Senior Creative Director at Adobe and all around crazy guy.
Step 3: Select "Radial Gradient" From The Options Bar
Obviously, we want our rainbow to appear as an arc, not as a straight line, so with the Gradient tool still selected, go back up to the Options Bar at the top of the screen and click on the Radial Gradient option:
Step 4: Drag Out A Rainbow With The Gradient Tool
With the Gradient tool in hand, the "Rainbow" layer selected in the Layers palette, and the "Russell's Rainbow" gradient loaded and ready, I'm going to create my initial rainbow by simply dragging out a gradient. I want my rainbow to appear as if it's touching the ground behind the smaller group of trees on the left of my photo and then arching high above the larger tree on the right. To do that, I'm going to position my mouse almost to the right edge of the image down near the bottom, in line horizontally with the bottom of the trees on the left, and then I'm going to click and drag all the way across the image to a point just beyond the left of the trees, as we can see in the screenshot below:
Hold your Shift key down as you drag to constrain your gradient horizontally. When I release my mouse button, Photoshop draws my rainbow gradient for me:
Doesn't look very realistic yet, but we're not done yet.
Step 5: Change The Blend Mode Of The Rainbow Layer To "Screen"
With the "Rainbow" layer still selected, go up to the Layer Blend Mode options in the top left of the Layers palette, click on the down-pointing arrow beside the word "Normal", and change the blend mode to Screen by selecting it from the list that appears:
Your rainbow should now look something like this:
Step 6: Apply The Gaussian Blur Filter To The Rainbow
We're going to make the rainbow look more realistic now by blurring it quite a bit using Photoshop's Gaussian Blur filter. To do that, go up to the Filter menu at the top of the screen, select Blur, and then select Gaussian Blur. This brings up the Gaussian Blur dialog box:
Drag the slider bar at the bottom of the Gaussian Blur dialog box to the right to increase the amount of blur being applied to the rainbow, and keep an eye on your image as you drag so you can see a preview of what's happening. Continue dragging to the right until your rainbow looks more realistic. Depending on the size of your image (the pixel dimensions), you may want to set the blur Radius as high as 50-60 pixels. I'm using a low resolution image for this tutorial, so for me, a radius value of around 25 pixels works well. Click OK when you're done to exit out of the Gaussian Blur dialog box.
Here's my image after applying the Gaussian Blur filter to my rainbow:
Step 7: Add A Layer Mask To The Rainbow Layer
With the "Rainbow" layer still selected, click on the Add A Layer Mask icon at the bottom of the Layers palette:
This adds a layer mask thumbnail, filled with white, to the right of the Rainbow layer contents thumbnail in the Layers palette:
The layer mask itself is now currently selected, which you can tell by the white highlight box around its thumbnail.
Step 8: Choose The Black-To-White Gradient
Press D on your keyboard, which will set your Foreground color to white and your Background color to black, then press X to swap them. Grab the Gradient tool once again from the Tools palette if it's not still selected and then click again on the Gradient Picker in the Options Bar:
This will bring the Gradient Editor back up. Click on the gradient swatch in the top left corner, the Foreground to Background gradient, to select it:
Step 9: Choose "Linear Gradient" From The Options Bar
Go back up to the Options Bar and this time, click on the Linear Gradient option:
Step 10: Drag A Black-To-White Gradient From The Base Of The Rainbow To The Top Of The Image
A real rainbow would normally appear to get brighter as it reaches higher into the sky, so we're going to give our Photoshopped rainbow that same effect by dragging a black-to-white gradient from the base of the rainbow (the point where it appears to touch the ground) to the top of the image. By doing this, we'll also be cutting off the rainbow at the baseline so none of it that's below the base remains in the image. To do that, with my Gradient tool selected, I'm going to click my mouse somewhere along the bottom of the trees on the left, which is where I want my rainbow to "touch the ground", and then I'll hold down my Shift key and drag straight up to the top of the image. Holding down Shift forces me to drag straight up, preventing me from accidentally dragging a little to the left or right:
When I release my mouse button, Photoshop draws my black-to-white gradient on the layer mask, and my rainbow now appears to start near the bottom of the trees on the left and gets brighter as it reaches higher into the sky: