Пример #1
0
        public Stream genGIF()
        {
            var store = new FrameStore(videoFrames.Length, videoFrames[0].Width, videoFrames[0].Height);

            foreach (var frame in videoFrames)
            {
                store.PushFrame(frame);
            }

            float delay = 1.0f / Settings.FPS;

            delay *= 100.0f;

            Stream myStream = new MemoryStream(1024);

            store.ExportGif(myStream, (int)delay);
            return(myStream);
        }
Пример #2
0
        public GameState ZoomUpdate(GameTime gameTime)
        {
            if (state.zoomedPic.editEquationButton.WasLeftClicked(state.inputState))
            {
                state.screen = Screen.EDIT;
                state.zoomedPic.textBox.cursorPos = new Point(0, 0);
                state.zoomedPic.textBox.SetActive(true);
                return(state);
            }


            if (state.zoomedPic.playButton.WasLeftClicked(state.inputState))
            {
                state.zoomedPic.GenVideo(state, Settings.VIDEO_WIDTH_LOW, Settings.VIDEO_HEIGHT_LOW);
            }

            if (state.zoomedPic.playHDButton.WasLeftClicked(state.inputState))
            {
                state.zoomedPic.GenVideo(state, Settings.VIDEO_WIDTH_HI, Settings.VIDEO_HEIGHT_HI);
            }

            if (state.zoomedPic.exportGIFButton.WasLeftClicked(state.inputState))
            {
                _ = state.zoomedPic.exportGIF(state);
            }
            if (state.zoomedPic.exportPNGButton.WasLeftClicked(state.inputState))
            {
                var pic   = state.zoomedPic;
                var store = new FrameStore(1, pic.bigImage.Width, pic.bigImage.Height);
                store.PushFrame(pic.bigImage);

                Stream myStream;
                System.Windows.Forms.SaveFileDialog saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();

                saveFileDialog1.Filter           = "png images (*.png)|*.png";
                saveFileDialog1.FilterIndex      = 0;
                saveFileDialog1.RestoreDirectory = false;

                if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    if ((myStream = saveFileDialog1.OpenFile()) != null)
                    {
                        store.ExportFrame(myStream, 0);
                        myStream.Close();
                    }
                }
            }

            if (state.zoomedPic.WasRightClicked(state.inputState) || TextUtils.IsKey(Keys.Escape, state.inputState))
            {
                state.zoomedPic.imageCancellationSource.Cancel();
                state.zoomedPic.imageCancellationSource = new CancellationTokenSource();
                state.screen           = Screen.CHOOSE;
                state.zoomedPic.zoomed = false;
                state.zoomedPic        = null;
                LayoutUI();
                return(state);
            }



            return(state);
        }