svgをpngに変換するプログラムはすぐに検索でき、書けそうだとわかりました。
Convert SVG to PNG using NuGet package Svg | C# Online Compiler | .NET Fiddle
ですが、逆にpngをsvgに変換するプログラムについてはわかりませんでした。「Convert png to svg」などとキーワードを入れて検索をしていたのですが、無料のWebサービスなどを活用するしかなさそうです。
と、諦めていたのですが、Magick.NETがありました。
Q16とQ8がありますが、Q16は16ビット画像を劣化させずに扱えるようです。その分、負荷がかかります。
Magick.NETはpngからsvgだけでなく、様々な画像ファイルの変換を扱ったライブラリです。
using ImageMagick; namespace ConsolePngToSvg { class Program { static void Main(string[] args) { var path = "example.png"; var convertPath = "example.svg"; using (MagickImage img = new MagickImage(path) {Format = MagickFormat.Svg}) { img.Write(convertPath); } } } }
参考サイト
おまけ
素人目にsvgにしとけばファイルは軽くなると思ったのですが、そういうものではないんですね。