diff --git a/src/pixie.nim b/src/pixie.nim index 2f11d08..f01bbc1 100644 --- a/src/pixie.nim +++ b/src/pixie.nim @@ -3,7 +3,7 @@ import bumpy, chroma, flatty/binny, os, pixie/blends, pixie/common, pixie/fileformats/svg, pixie/gradients, pixie/images, pixie/masks, pixie/paths, vmath -export blends, bumpy, chroma, common, gradients, images, masks, paths, svg, vmath +export blends, bumpy, chroma, common, gradients, images, masks, paths, vmath type FileFormat* = enum @@ -17,6 +17,9 @@ proc decodeImage*(data: string | seq[uint8]): Image = decodeJpg(data) elif data.len > 2 and data.readStr(0, 2) == bmpSignature: decodeBmp(data) + elif data.len > 5 and + (data.readStr(0, 5) == xmlSignature or data.readStr(0, 4) == svgSignature): + decodeSvg(data) else: raise newException(PixieError, "Unsupported image file format") diff --git a/src/pixie/fileformats/svg.nim b/src/pixie/fileformats/svg.nim index e36a34c..46ea22f 100644 --- a/src/pixie/fileformats/svg.nim +++ b/src/pixie/fileformats/svg.nim @@ -3,6 +3,10 @@ import chroma, pixie/common, pixie/images, pixie/paths, strutils, vmath, xmlparser, xmltree +const + xmlSignature* = "