I have a project I have been working on (an image) within GIMP and I would like to export it as an SVG. Is this possible, or am I going to have to stick with exporting multiple sizes of an image?
I know GIMP can read SVGs, but can it export them?
I have a project I have been working on (an image) within GIMP and I would like to export it as an SVG. Is this possible, or am I going to have to stick with exporting multiple sizes of an image?
I know GIMP can read SVGs, but can it export them?
GIMP v2.8 does not natively export bitmaps to SVG files. There used to be a plugin to do so but this project apparently is discontinued. We could import an image as a bitmap object to Inkscape and save it as an SVG file. The image will then remain a bitmap file, i.e. it will get aliasing artifacts on scaling (see below).
But Inkscape can do even more. We can import the bitmaps we had already put so much work in to Inkscape and convert them with a few mouse clicks to nice vector graphics.
Here is how to do that:
Open Inkscape.
Choose "File - Import" to import a bitmap file.
Choose to "embed" the image.
Select the image with the select tool (↖).
Select Path - Trace Bitmap... for settings (below shown for 2 colors = "Scans" ):
Select "Update" for a preview until settings are fine.
Start tracing with "OK".
Now a vectorized image of your original bitmap will be seen on top of the bitmap. We can resize or move this newly created object, delete the original image, or choose to "Object - Ungroup" in case we need to adapt shapes or colour of sub-object created.
The advantage of a vector graphic can most rapidly be seen when we increase its size. Shown below was zooming to 2500%. Top is the original bitmap, bottom is the vectorized object:
This image and object was created from your original from chat
git.exe pull -v --progress "https://gitlab.com/jabiertxof/gimpToSVG/"
returns "remote: You are not allowed to download code from this project. / fatal: unable to access 'gitlab.com/jabiertxof/gimpToSVG.git': The requested URL returned error: 403 / git did not exit cleanly (exit code 1) (21075 ms @ 13/06/2017 08:29:28)"
Even though Gimp is not a vector program, you can actually export single paths as SVG file with the Export Path
menu item.
Here is a photo tutorial that explains in detail how to do it.
GIMP is a raster graphics editor application. SVG is a form of vector graphics. If you want to edit SVG files, you should install the inkscape
package and use Inkscape instead. Also, beware that SVG is not totally "scalable" in the sense that you will get a good image at every size you scale to, so depending on what you are creating with it, you may need to draw different sizes of the image, with different amounts of detail, so that the images will look good at those sizes. Icons for an application, for example, do need to be drawn at multiple sizes, whether they are drawn as raster or vector images.
If you need to convert a raster image to a vector image autotrace is a command line tool which does exactly that.
It's available as a debian package on Debian and Ubuntu named autotrace
An example of using it is:
autotrace input.jpg --output-file output.svg --output-format svg
Update: I've also had success with potrace where autotrace was having trouble.
Read Error
and the other [7B]pT[F5]: invalid chunk type
... they are valid png btw
autotrace input.png --output-file output.svg --output-format svg
instead?
Mar 28, 2016 at 10:46
potrace
is the tool for that. You can process them bulk, but first you have to convert the images to monochrome:
ls ./p*.jpg | xargs -L1 -I {} convert -monochrome {} {}.bmp
ls -1 ./*.bmp | xargs -L1 -I {} potrace {} -r 300 -b svg -o {}.svg
install:
sudo apt install potrace
ls ./*.png
). Yet I to restore the original colour, I copied the output.bmp.svg
to edit.svg
and changed fill="#000000"
to fill="#000050"
inside that edit.svg
file and save+reopen it in an image viewer. the 050 was not a lucky guess, 07000 also restored a color that somewhat resembled the original color.
Well, actually, you can save SVGs with GIMP. For instance, you can use this command: (gimp-vectors-export-to-file 1 "new.svg" 0)