Please Note! The statute of limitations on this post has expired!
Check the date: This post was originally published in 2012 and is kept here largely for archival purposes. Anything older than three years may contain ideas and opinions for which such a gap of time has likely reshaped, altered, softened, re-jigged, or otherwise changed those ideas and opinions to a state incongruent with my current existence.
Recently I’ve been writing a children’s picture book. I’ve been illustrating the story using Inkscape drawings — but even from the start I realized that I didn’t want it to be exclusively neat-and-clean vector art. This means I’ve been trying out some different techniques build the various parts and pages. I do lots of this work, but I rarely write down how I got there.
This is One Way To Do This: Find an image — a JPG, PNG or Bitmap — you like, and use it as a layered texture in a vector art drawing. It took me the better part of an hour to figure this out, so I thought I would share.
Step One: Understand that all of this is described under the assumption you are going to export the vector to a set size. If you are using the technique to build animated vector graphics, or graphics that need to be magnified beyond the resolution of the texture image, you are going to run into the same problems you run into whenever you use raster art: pixelation, artifacts, blurring, and loss of resolution.
Step Two: Find an image file with a texture. Take a photo. Draw it. Scan it. Whatever. But the dimensions should exceed the working dimensions of your vector image — or, I suppose it could be a repeating pattern that has no discernible edge when tiled. If you start to think of this texture image and your original vector art as two physical pieces of paper, you’ll want to imagine also that you are going to layer these things together inside Inkscape. You’ll have your boring, single-coloured bit of crisp vector art, and you are going to mash overtop of it a texture. In this way the texture should completely cover the orginal art.
Step Three: Load your vector art file in Inkscape and then File > Import and Embed the texture file. We are going to need it inside your file. You can shuttle it outside the working area when we’re done building the texture, but for now you need it. And just like you imagined doing in step two — overlaying the texture atop the vector you want to texture — go ahead and do that with the embedded texture object, rotating and maneuvering it to cover the texture completely.
Step Four: Make sure you open the Fill & Stroke dialog, selecting Object > Fill and Stroke. With the texture covering your vector, create a new pattern by selecting Object > Pattern > Object to Pattern. Inkscape is not going to tell you much at this point. It’s just going to do it, and it’s up to you to do actions carefully and stepwise here to get it right.
Step Five: Don’t move it yet. Lower your texture object out of the way, hitting “Lower Selection One Step” until you can see the vector art work object you want to texture hiding below. Select that vector object and duplicate it, either with a Ctrl-D or a Right Click > Duplicate and then select the duplicate vector art object. It’s the duplicate you’re going to texture.
Step Six: From the Fill tab of the Fill & Stroke dialog, you are going to select pattern. Since you just created a pattern, your custom pattern and texture is now called something completely non-intuitive as “pattern5329” or something very similar (the number will be different) and it will be near the top of the otherwise-organized list of built-in patterns. Select it, and you should see a the copy of your vector art suddenly fill with a copy of the original texture image file — but nicely fit to your vector shape.
Step Seven: Adjust, repeat, enjoy. Play with the opacity and blur to bring out the original vector colour behind, add more textured object duplicates the same way, or re-order those duplicate objects to create the effect you are looking for.