Skip to content

Instantly share code, notes, and snippets.

@matsen
Created December 12, 2012 01:05
Show Gist options
  • Save matsen/4263955 to your computer and use it in GitHub Desktop.
Save matsen/4263955 to your computer and use it in GitHub Desktop.
A script to convert SVG to a TIFF acceptable to PLOS
#!/bin/sh
# Convert all arguments (assumed SVG) to a TIFF acceptable to PLOS
# Requires Inkscape and ImageMagick 6.8 (doesn't work with 6.6.9)
for i in $@; do
BN=$(basename $i .svg)
inkscape --without-gui --export-png="$BN.png" --export-dpi 300 $i
convert -compress LZW -alpha remove $BN.png $BN.tiff
mogrify -alpha off $BN.tiff
rm $BN.png
done
@twesleyb
Copy link

twesleyb commented Jun 2, 2020

This is how I use it:

svg2tiff.sh

#!/bin/sh
# Convert all arguments (assumed to be SVG) to a TIFF.
# Requires Inkscape and ImageMagick 6.8 (doesn't work with 6.6.9).
# From matsen: https://gist.github.com/matsen/4263955

for i in $@; do
  BN=$(basename $i .svg)
  inkscape --without-gui --export-png="$BN.png" --export-dpi 300 $i
  convert -compress LZW -alpha remove $BN.png $BN.tiff
  mogrify -alpha off $BN.tiff
  rm $BN.png
done

Download a svg image and convert it:

wget https://svgsilh.com/svg_v2/2442125.svg
svg2tiff 2442125.svg

@AnthonyMobbs
Copy link

Sometimes you need to alter the size of the image to meet PLOS requirements. The following script requires two argument. $1 = name of svg file, $2 = number of pixels wide. Also note that this script generates 600 dpi image for high resolution. PLOS accepts images in range 300 - 600 dpi.

svg2tiff abc pixels

#!/bin/bash
inkscape -o "$1.png" --export-width $2 --export-area-drawing $1.svg
convert -compress LZW -units PixelsPerInch -density 600 -alpha remove -trim $1.png $1.tif
mogrify -alpha off $1.tif
rm $1.png

@fayjustin
Copy link

To export only the drawing area, but pad it with 50 points of whitespace regardless of size replace mogrify command with:
mogrify -alpha off -gravity center -background white -extent $(identify -format '%[fx:W+50]x%[fx:H+50]' $BN.tiff) $BN.tiff

@ricmedveterinario
Copy link

I'm in 2022 and it still works. Thanks to the creators of these little scripts.

@ben-heil
Copy link

Works great! Thanks @matsen

@AliASafdari
Copy link

Thank you @matsen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment