public override void Initiate(ILaunchpad launchpad) { this.launchpad = launchpad as LaunchpadMk2; try { using (var fileStream = File.OpenText(_filePath)) { var contents = fileStream.ReadToEnd(); piskelFile = new PiskelFile(contents); } var pngData = piskelFile.Layers.First().Chunks.First().Data; bitmap = SKBitmap.Decode(pngData); var totalFrames = piskelFile.Layers.First().FrameCount; var frameWidth = bitmap.Width / totalFrames; for (var frameIndex = 0; frameIndex < totalFrames; frameIndex++) { var frame = new Color[frameWidth, bitmap.Height]; var xOffset = frameIndex * frameWidth; for (var y = 0; y < bitmap.Height; y++) { for (var x = 0; x < frameWidth; x++) { var pixel = bitmap.Pixels[bitmap.Width * y + (x + xOffset)]; frame[x, y] = Color.FromArgb(pixel.Alpha, pixel.Red, pixel.Green, pixel.Blue); } } frames.Add(frame); } isInitiated = true; } catch (Exception ex) { Debug.WriteLine(ex); } }
public virtual void Initiate(ILaunchpad launchpad) { }