How to convert poor quality bitmap image to vector?
I think there's also an open source solution for this, besides Adobe software: Inkscape
I've had the same problem a couple of years ago with a dozen of logos, and were able to solve it with Inkscape this way:
- Open the bitmap image.
- Left click on it to select it.
- Path / Trace Bitmap
- Now you have to start experimenting with the possible settings, and refreshing the preview on the right side of the dialog. "Inkscape incorporates the Potrace program (http://potrace.sourceforge.net) to provide this functionality, and in-depth documentation about the function of this feature can be found at the web site for Potrace." - from Inkscape documentation.
- Save as SVG.
There are 2 options that I have used, but they require software that is not on the cheap side. Adobe does provide 30 day trials on both.
Method 1 - Using Adobe Illustrator
- Open Illustrator
- Select File > New from the menu and setup the layout as needed
- Select File > Place... and find the logo file (I can't recall if the image has to be a specific format)
- Select the image and go to Object > Live Paint or Live Trace (in your case live paint might be better since drawing is not your forte)
- The image should now be vectorized and you can retouch as needed and resizing will maintain quality since it has been vectorized.
Method 2 - Using Adobe Flash & Illustrator
- Open Flash
- Create a new flash document
- Choose File >Import > Import to stage (Ctrl+R) and find the (bitmap graphic), which you want to convert into a vector one.
- Select the entire picture (Ctrl+A) and then click Modify – Bitmap - Trace bitmap. Then, choose the options from the window that opened.
- Export as *.ai (Adobe Illustrator file)
- Open in Illustrator and adjust as needed.
The imagemagick Usage docs have a good explanation of how to perform edge detection and raster to vector conversion. From the edge_vector section, which begins by saying, essentially, for best results, don't use imagemagick:
Programs that can do this include: "ScanFont", "CorelTrace" and "Streamline" by Abobe. Most of these however cost a lot of money. But a free solution is "AutoTrace" or "PoTrace". Other suggestions are welcome.
Both trace programs are simple to use, but requires some pre and post image setup. They have a limited number of input formats, and outputs a vector image which will create a 'smoothed' form of the input image. I prefer the "AutoTrace" as it does not scale the resulting SVG, producing a standard line thickness, however you can not use it in a 'pipeline'.
For best results it is a good idea to ensure we only feed it a basic bitmap image, which we can ensure by thresholding the input image, while we convert it to a image format autotrace understands. I can then convert that image into a SVG vector image.
You can run autotrace online if you want to try it out.