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);
            }
        }
예제 #2
0
 public virtual void Initiate(ILaunchpad launchpad)
 {
 }