How to Vectorize an Image Using Free Software
Converting any image to vector graphics can be extremely useful; it is one of the few techniques that can actually enhance the quality of an image, making its edges perfectly smooth even when zoomed to infinity. This quality “enhancement”, however, does not come without its drawbacks. Some of these drawbacks include the loss of gradients, shadows, etc. Basically, anything that requires a gradual change in lighting is transformed into a number of layers to simulate the same effect. Therefore, the technique is not good for photographs but rather for man made graphics which require sharp and well defined edges. Some examples where this technique would be ideal could be when transforming low resolution images, when you want to use a section or detail of an image which would require so much zooming that its edges would distort due to edge pixelation, when you want to transform a real photograph into a logo, cartoon, etc.
There is a web based tool called Vector Magic which achieves the same results, however, this tool is not free and even though it does a great job, it does not provide the flexibility offered by the technique I will describe next. The following tutorial describes how to vectorize an image, achieving similar or better results than Vector Magic using Inkscape; a free and powerful vector image editing software.
Instructions
For our tutorial we are going to be using a jpeg image of the Linux Logo.
Click on the picture to select it. Go to the top menu and click on “Path“, then “Object to Path“.
Again, click on the picture to select it. Then, on the top menu, click on “Path” and then on “Trace Bitmap…“.
The following picture explains how you should configure the trace bitmap settings to achieve the best results.
Mode Tab
1) If you have a color image, like the one in our example, select “Colors“.
2) Select “Smooth” to make every border in the image as smooth as possible.
3) Select “Stack Scans” to create whole figure layers, which would blend nicely with the rest of the image; otherwise inkscape will create white gaps between layers.
4) (Optional) Select “Remove Background” if you wish to make the image transparent. One drawback of this option is that Inkscape will remove the background of the picture as well as any other part of the picture that has the same color. In the picture below, this option makes the background transparent as well as the belly and eyes of the penguin.
Options Tab
1) Make sure “Suppress Speckels” is selected.
2) Make sure “Smooth Corners” is selected.
3) Make sure “Optimize Paths” is selected.
You can leave Size, Threshold and Tolerance with its default values or play with them until you achieve the desired results.
Click “Ok” to apply changes.
Now, a vectorized image is created on top of the original one in a new layer. Drag the new image to one side, and delete the old image you no longer need.
If you zoom an image that is not vectorized, you will see that its edges tend to blur to blend-in with the environment; this way they minimize the effect of the jagged pixelated edges. When regular images are transformed into vector images, these pixelated edges no longer exist; you can zoom the image to infinity and you will not see any distortion. However, since the edges were previously blurred, this blurring is now transformed into a number of layers that go from darker to lighter to simulate the blurring. Since now we have a vectorized image and our edges are perfect, we no longer need some of these layers.
To Remove the extra layers, select the image and, on the top menu, click on “Object” and “Ungroup“. This should free every single layer which is part of the image. Now you can drag these unneeded layers out, delete them, etc.
Proceed to drag the layers you no longer need and delete them from the image. You can also darken the remaining edge layer to minimize the blurring effect even further.
Now, if we zoom the picture closely we can see that the edges look more realistic.
Thanks guys – this has been a nagging thing for me for a very long time. As someone who works primarily with bit map images (for websites) I occasionally get asked for my images to vector for use in print.
This was handy.