Photoshop Tutorial - Create a Seamless Texture from a Photo

Skill

Photoshop Tutorial - Create a Seamless Texture from a Photo

Posted in:
Tiled Image

Image courtesy of Gaming Textures

This tutorial will guide you through the process of creating a seamless texture from almost any photo.

The first thing we're going to do is apply Photoshop's Offset Filter. This
filter is located on the menu Filter->Other->Offset.

Offset Dialog

This is the dialog that is displayed when you select the Offset filter. The value in Horizontal should be half the width of your original image and the value in Vertical should be half the height of your original image. My source image is 2048x2048 in size, so I entered +1024 for Horizontal and +1024 for Vertical. Before clicking 'OK', make sure 'Wrap Around' is selected for Undefined Areas.

Resulting Image
Healing Brush Icon
Healing Brush Options
As you probably noticed, the image has some pretty noticeable seams. To the right is a zoomed in version of the image after the filter was applied. What we need to do now is repair the seams using one of my favorite Photoshop tools - the Healing Brush. This tool is located on the toolbar.

The Healing Brush works by taking a selection from one part of the image and blending it into another. At this point I opened a copy of the original image to take selections from. To use the Healing Brush, hold down Alt and click
an area on the original image. Then switch back to the filtered image and click on one of the seams. The area from the original image will be blended into the seam covering it up.

Depending on your source image, your brush settings might be different. I chose a fairly large brush to cover large parts of the seams at once. All that's left now is to continue healing the seam until you're satisfied with the results.

Image Before Healing

Before

Image After Healing

After

Preview The Result

Now that you have a first draft of your seamless texture, it's a good idea to use Photoshop to tile it for you so can make sure it tiles nicely. To do this, we'll be using the "Define Pattern" tool and the "Fill" tool. First, make a pattern with your newly created texture - select Edit->Define Pattern from the main menu.

Now that we have a pattern defined, we need to use the "Fill" tool to tile it for us. First, create a new image that is many times larger than your original. If your original image is 500x500, an image size of 2500x2500 will yield five tiles vertically and five tiles horizontally. With your new image selected, select the Fill tool from the main menu - Edit->Fill.

Select Pattern under the "Use" drop-down menu and your newly created pattern as the Custom Pattern. Once 'OK' is clicked Photoshop will tile your texture automatically.

Original Tiled

Original Tilied

Seamless Tiled

Seamless Tiled

If there are any parts of the image that stand out in the tiled image, you can go back and work on them a little more before finishing. To the left on top is a corner where 4 of the original images come together, and below it is the corner in the new seamless image. As you can see, there are no seams in the bottom picture (as compared to the top image, where you can clearly see the seam lines).

Now, of course, if you begin to tile the new seamless image a lot and zoom out, you will be able to see pattern and repetition - which is to be expected. This has nothing to do with seam lines, but it will create the appearance of seam lines at the points where any obvious patterns in the image repeats. Unfortunately, that is much harder to fix - and often requires multiple original images. And that is a topic for a future tutorial.

The image I used for this tutorial can be found here: Pebbled Wall

Karyn
09/28/2007 - 17:10

The future is now. How DO I get rid of the pattern and repetition mentioned in the last paragraph?

reply

Anonymous
02/04/2010 - 13:00

Use a much bigger picture (1024 x 1024 etc)

reply

Tom
06/30/2008 - 21:49

It looks nice. I like it.

reply

Antonio
12/01/2008 - 14:03

Awesome tutorial man,
thanks a lot for the help!

reply

Add Comment

Put code snippets inside language tags:
[language] [/language]

Examples:
[javascript] [/javascript]
[actionscript] [/actionscript]
[csharp] [/csharp]

See here for supported languages.

Javascript must be enabled to submit anonymous comments - or you can login.

Sponsors