2017-02-12 35 views
2

SkiaSharpを使用してSVGファイルをPNGに変換しようとしています。私は多くの選択肢があることを知っていますが、SVGのロードサポートを評価したいと思っていました。SkiaSharpを使ってSVGをPNGにレンダリングできますか?

これは可能ですか?私はこれを試しました:

var svg = new SKSvg(new SKSize(200, 200)); 
svg.Load("image.svg"); 

var bitmap = new SKBitmap((int)svg.CanvasSize.Width, (int)svg.CanvasSize.Height); 
var canvas = new SKCanvas(bitmap); 
canvas.DrawPicture(svg.Picture); 
canvas.Flush(); 
canvas.Save(); 

using (var image = SKImage.FromBitmap(bitmap)) 
using (var data = image.Encode(SKImageEncodeFormat.Png, 80)) 
{ 
    // save the data to a stream 
    using (var stream = File.OpenWrite("image.png")) 
    { 
     data.SaveTo(stream); 
    } 
} 

ただ空のイメージを取得します。

+0

私たちに何を見せますか? – MickyD

+0

...デバッグ時に 'svg.CanvasSize.Width'と' svg.CanvasSize.Height'の値は何ですか – MickyD

+0

ああ、良い質問です。私の急いで、私はよく知られているファイルをテストするとは思わなかった。私はhttps://github.com/mono/SkiaSharp/blob/8ca298b448810cf65ab13cd7b2de94c627a033c1/tests/Content/images/logos.svgに対してテストしました。それはうまくいった。だからコードは良いです。おそらくフィルターはサポートされていません。 – t9mike

答えて

関連する問題