Why do you use librsvg? Because Imagemagick (which we use via Wand) isn’t as flexible when it comes to scaling vectors. When you ask Imagemagick to scale an SVG, it converts it to a raster PNG of arbitrary size and then scales the PNG, often making it very blurry.

Why don’t you use some librsvg binding? Because it works fine from subprocess and I’m lazy.

What other blend modes are available? See Wand docs under wand.image.COMPOSITE_OPERATORS.

Mind if I ask what’s the font you used for example.com watermark (http://dae.me/storage/images/watermark.svg)?
And what tools did you use to create this svg? I’ve tried 5 different png to svg converters and they all failed :(

The font is probably Proxima Nova. I used Adobe Illustrator CC. PNG is a raster image, SVG contains vectors. Vectors can be scaled and this is cool because photos come in different sizes. Some photos are really big, some are small, yet the watermark should look crisp and sharp on either. PNG cannot be used the same way, but if your photos are the same size and you don’t need to scale the watermark, its perfectly fine to use PNG.