back to top

How to Make a Shadow in Photoshop

A- A+

Subscribe Below to Download the Article Immediately

You can also select your interests for free access to our premium training:

Your privacy is safe. I will never share your information.

Adding shadows to your photo is vital to grounding an object in a scene when you are making a composite image.

In this article, you’ll see how to make a shadow in Adobe Photoshop. Both to a white background photo and a natural landscape scene.

Let’s get started with this simple Photoshop tutorial.

A yellow toy figure on a concrete surface
Photo by Lewis Burrows from Pexels

[Note: ExpertPhotography is supported by readers. Product links on ExpertPhotography are referral links. If you use one of these and buy something, we make a little bit of money. Need more info? See how it all works here.]

How to Add Shadows to a White Background

A blank white canvas is the easiest place to begin if you want to create a shadow in Photoshop. And you can practice the basic steps needed for creating realistic shadows.

White backgrounds are very typical of product photography. But these images don’t contain shadows when photographed in a lightbox.

Here you’re going to see how to make a nice soft drop shadow. Not a hard one like you’d get from a direct strobe flash.

A red vase against white background
A red vase against a white background

Create a Drop Shadow

The first step is to create a drop shadow. This is a fairly straight forward task.

  1. Cut out your object from another picture. This should be easier if you have a product photo already taken against a white background. Use the Object Selection Tool (keyboard shortcut W) to make the selection easier.
  2. Import your image into a blank Photoshop document. In this Photoshop document, you’ll want a new background layer set to white, and a layer to place your object.
  3. In the layer with your object, click the Layer Effects. Find this in the at the bottom of your layers window. It says”fx”. Select the option to create a drop shadow. You can now manipulate the effect. You can change the shadow colour (default is black), and the opacity, angle, size and distance.
A product photography shot of a red vase with a strong shadow
A product photography shot of a red vase with a strong shadow

Here are the settings in the Layer Effects dialog box.

Screenshot of drop shadow dialog box in Photoshop
Screenshot of drop shadow dialog box.

The drop shadow needs to be stretched out, so it appears more realistic.

Make the Shadow Realistic

The next step is changing that shadow into a realistic shadow. Change the drop shadow into a new layer. Now you can manipulate it on its own. Follow these steps to make this happen:

  1. On the layer containing your shadow. Right-click on the fx symbol that has now appeared. Select Create Layer. A new layer should appear containing only the drop shadow.
  2. Now you’ll want to change the direction of the shadow. Using your dropdown menus, select Edit>Transform>Skew. Use the top two anchor points to drag the shadow out. In this example, I will drag the shadow to the right. You can adjust how much you want the shadow to come from the side. In this case, I’ll drag to around 45 degrees.
  3. The shadow is now very long, so you can adjust this as well. Go to Edit>Transform>Scale. You’ll now be able to change the length of the shadow by dragging the top anchor up or down. In this case, the shadow length has been shortened.
  4. Finally, you’ll need to warp the shadow, so it still fits with the object that is casting it. You’ll need to ensure that the base of the shadow is still in contact with the base of the object. Select Edit>Transform>Warp. Drag the anchor points to make sure the shadow is in the correct position.
A product photography shot of a red vase with a strong shadow
The final image shows a gradation within the shadow.

Finishing Touches

This shadow should be stronger near the base, and more diffused, lighter near the top. To do this, create a second shadow layer.

  1. Select your shadow layer and go to Layer>Duplicate Layer (Ctrl or ⌘J). You now have a copy.
  2. Click on the first shadow layer. Enter 90% into the Fill box found near the top of the layers window. This is the darkest part of your shadow. Now, click on the layer copy and enter 40% into the Fill box. This is your light shadow. Deselect the eye icon to the left of the layers to see the change in the strength of the shadows.
  3. Now, adjust the sharpness of the shadow. It should be more diffuse the further away from the object it becomes. To do this, you’ll need to add a Gaussian blur. Click on the light shadow layer. Go to Filters>Blur>Gaussian blur. In the dialog box, set the pixel radius around 25. Click on the dark shadow and add about 5 pixels of blur. You can make the shadow sharper or more diffused by adjusting the pixel radius to your liking.
  4. The final task is applying gradation so that your shadow goes from darker to lighter in a seamless transition. First, apply a white layer mask to your dark shadow. You can do this by clicking the Layer Mask tool at the bottom of the layers window. It looks like a rectangle with a circle inside. Or you can select Layer>Layer Mask>Reveal All.
  5. Now, select the gradient tool on the left-hand menu. Ensure you have the background set to white, and foreground set to black. Select a point around halfway up through the shadow, and drag the gradation back through the object casting the shadow. The darker part of the shadow should be closer to the object. The more graduated you want the shadow, the longer the line needs to be. Copy your layer mask onto the light shadows layer by pressing the option key and dragging the layer mask. Invert the layer mask copy by selecting Image>Adjustments>Invert (Ctrl or ⌘I).

You’re done! Your shadow should look natural – as if it’s always been there.

How to Add Shadows to a Landscape Scene

Look for the Light Source

Compositing an image into a scene that has natural light needs care and attention. One of the most important aspects is adding a shadow to go with the composite image. To do this, you’ll need to see where existing shadows in your scene fall. That means looking at objects within your frame to see the direction of the light.

You’ll also want to make sure your shadow matches the colour cast of other shadows in your scene.

In the scene chosen for this tutorial, the light is in front of the camera. The bamboo forest has also diffused it.

A girl in traditional japanese dress walking through a bamboo forest
A girl in traditional Japanese dress walking through a bamboo forest. In this scene you’ll need to adjust the size of the model who has been pasted in from another photo.

Paste Your Object Into the Scene

Our object is a person. This person has been cut out of a photo taken on the same day as this photo. This helps the light on the model to be consistent with the rest of the scene. But we need to add the shadow. Here’s how:

  1. Create a new layer in Photoshop and then paste the object or person into the scene.
  2. Resize the object to fit the scene. To do this, go to Edit>Free Transform (Ctrl or ⌘T). Now drag the anchor points to adjust the size of the object. Hold the shift key down to keep everything in proportion. In my example, I used the fence as a point of reference for the model’s height.
  3. Using the move tool, place the object or person in the scene.
A girl in traditional japanese dress walking through a bamboo forest
Match the size with other objects within the photo.

Shape Your Shadow

  1. In the layer with your object, add a Drop Shadow Effect (fx icon). Change the shadow’s colour, opacity, angle, size and distance, so they make sense in your image. If you have a picture with existing shadows, match their colour when creating a new one. Use the dropper tool for this.
  2. Right-click on the fx symbol that has now appeared in your layer and select Create Layer. A new layer should appear containing only the drop shadow.
  3. Use the transform tools described above (skew, scale, and warp) to adjust the shadow to make sense in the image. This time I wanted to bring the shadow forward, as the main light source is coming from behind the bamboo forest. In this photo, I’m keeping the shadow within the frame, and pushing it slightly to the left. Grab the top anchor and drag it forward, and then lengthen the shadow to your liking. You may once again need to use the warp function within transform to make sure the shadow is still connected to the model.
  4. If the light source is behind the object, you may want to first flip the shadow vertically by going to Edit>Transform>Flip Vertical.
A girl in traditional japanese dress walking through a bamboo forest, casting a strong shadow
Create your shadow and position it within the photo.

Soften the Shadow

Now, you’ll need to soften the shadow. Use the same procedure as before following the steps in the “Finishing Touches” section of this article. Change the fill and add a layer mask with a gradient tool.

The key difference here is that the shadow is going to be more diffused for this photo. In the Gaussian blur dialog box for the darker shadow, the pixel radius is set to 25, and the lighter shadow is set to 50.

A girl in traditional japanese dress walking through a bamboo forest,
The final image shows a nice diffuse shadow behind the model in the photo.

Conclusion

Adding a Drop Shadow Layer Effect is easy in Photoshop. The trick is adjusting the effect, so it looks natural.

There are three key steps:

  • Add a new layer from the layer effect.
  • Adjust the size and shape of the layer to make a more realistic shadow.
  • Use the gradient tool to fade the shadow.

If you’re new to this technique, I hope you’ll enjoy this, and try it yourself. As always please leave your thoughts, and any pictures you have in the comments section.

Are you looking for more great Photoshop tips? Why not check out our new post on using the photoshop warp tool next! For all you need to know about Lightroom, try our Effortless Editing course! 

Show Comments (0)
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]