public Stream Assemble() { // # Set the number of frames per second to display // frameRate( frame_rate ) //SKCanvas canvas = new SKCanvas() SKPath path = new SKPath(); Stream stream = null; SKImage skImage = null; try { using (var skSurface = SKSurface.Create(new SKImageInfo(w, h))) { var canvas = skSurface.Canvas; // # Sets color space to Hue Saturation Brightness with max values of HSB respectively // colorMode(HSB, 360, 100, 100, 100) //background(0, 0, 100) canvas.Clear(SKColors.White); // rectMode(CORNER) // draw ... draw(canvas); canvas.Flush(); //skImage = skSurface.Snapshot(); SKPaint paintConvert = SkiaSharpUtility.CreateDefaultPaint(); //skImage = SkiaSharpUtility.ScaleSurfaceToImage( skSurface, ImageCanvasSize, size, paintConvert ); skImage = skSurface.Snapshot(); } // encode SKData skData = SkiaSharpUtility.EncodeImageToSKData(skImage, "png"); stream = skData.AsStream(); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (skImage != null) { skImage.Dispose(); } paint.Dispose(); } return(stream); }
public Stream Assemble(int size = 256) { //SKCanvas canvas = new SKCanvas() SKPath path = new SKPath(); Stream stream = null; SKImage skImage = null; try { using (var skSurface = SKSurface.Create(new SKImageInfo(w, h))) { var canvas = skSurface.Canvas; canvas.Clear(bc); //set background color // draw ... draw(canvas); canvas.Flush(); //skImage = skSurface.Snapshot(); SKPaint paintConvert = SkiaSharpUtility.CreateDefaultPaint(); skImage = SkiaSharpUtility.CropSurfaceToImage(skSurface, ImageCanvasSize, size, paintConvert); } // encode SKData skData = SkiaSharpUtility.EncodeImageToSKData(skImage, "png"); stream = skData.AsStream(); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (skImage != null) { skImage.Dispose(); } paint.Dispose(); } return(stream); }