Exemplo n.º 1
0
        public void Next()
        {
            if (F.SelectedPanel.ind + 1 < F.panel1.Controls.Count)
            {
                F.SuspendLayout();
                ComicPanel B = (ComicPanel)F.panel1.Controls[F.SelectedPanel.ind + 1];
                F.SelectedPanel.Unselect();

                /*try
                 * {
                 *  F.panel1.VerticalScroll.Value += B.Height;
                 * }
                 * catch
                 * {
                 *  F.panel1.VerticalScroll.Value = F.panel1.VerticalScroll.Minimum;
                 * }*/
                //F.panel1.VerticalScroll.Value += B.Height;
                B.Select();
                F.ResumeLayout();
            }
            else
            {
                if (F.panel1.Controls.Count > 0)
                {
                    F.SuspendLayout();
                    ComicPanel B = (ComicPanel)F.panel1.Controls[0];
                    F.SelectedPanel.Unselect();
                    //F.panel1.VerticalScroll.Value = F.panel1.VerticalScroll.Minimum;
                    B.Select();
                    if (Playing)
                    {
                        LoopAudio();
                    }
                    last = DateTime.Now;
                    F.ResumeLayout();
                }
                else
                {
                    return;
                }
            }
            if (F.SelectedPanel != null)
            {
                stop          = true;
                slfps         = 1000f / F.SelectedPanel.delay;
                textBox3.Text = "" + slfps;
                textBox4.Text = "" + F.SelectedPanel.delay;
                stop          = false;
            }
        }
Exemplo n.º 2
0
        public void Prev()
        {
            if (F.SelectedPanel.ind - 1 >= 0)
            {
                ComicPanel B = (ComicPanel)F.panel1.Controls[F.SelectedPanel.ind - 1];
                F.SelectedPanel.Unselect();

                /*try
                 * {
                 *  F.panel1.VerticalScroll.Value -= B.Height;
                 * }
                 * catch
                 * {
                 *  F.panel1.VerticalScroll.Value = F.panel1.VerticalScroll.Maximum;
                 * }*/
                B.Select();
            }
            else
            {
                if (F.panel1.Controls.Count > 0)
                {
                    ComicPanel B = (ComicPanel)F.panel1.Controls[F.panel1.Controls.Count - 1];
                    F.SelectedPanel.Unselect();

                    /*try
                     * {
                     *  F.panel1.VerticalScroll.Value = F.panel1.VerticalScroll.Maximum;
                     * }
                     * catch
                     * {
                     * }*/
                    B.Select();
                }
                else
                {
                    return;
                }
            }
            if (F.SelectedPanel != null)
            {
                stop          = true;
                slfps         = 1000f / F.SelectedPanel.delay;
                textBox3.Text = "" + slfps;
                textBox4.Text = "" + F.SelectedPanel.delay;
                stop          = false;
            }
        }
Exemplo n.º 3
0
        private void button7_Click(object sender, EventArgs e)
        {
            CD  = 0;
            del = 0;
            timer1_Tick(null, null);


            ComicPanel B = (ComicPanel)F.panel1.Controls[0];

            F.SelectedPanel.Unselect();

            /*try
             * {
             *  F.panel1.VerticalScroll.Value = 0;
             * }
             * catch
             * {
             * }*/
            B.Select();
            last = DateTime.Now;
            timer1_Tick(null, null);
        }
Exemplo n.º 4
0
        public void ExportSequence(string directory, int framedelay, bool resize = false)
        {
            if (Playing)
            {
                /*Playing = false;
                 * textBox3.Enabled = true;
                 * textBox4.Enabled = true;
                 * pictureBox1.Focus();*/
                StopPlayback();
            }

            /*if (thetimer != null)
             * {
             *  thetimer.Dispose();
             *  thetimer = null;
             * }*/
            timer1.Stop();
            bool started = false;
            //int fps = (int)float.Parse(S.textBox1.Text);
            int fps = framedelay;

            forcetime = fps;
            CD        = 0;

            ComicPanel CP = (ComicPanel)F.panel1.Controls[0];

            F.SelectedPanel.Unselect();

            /*try
             * {
             *  F.panel1.VerticalScroll.Value = 0;
             * }
             * catch
             * {
             * }*/
            CP.Select();

            int frame = 0;

            int            lastpanel = -1;
            MemoryStream   MS        = null;
            ProgressWindow PW        = new ProgressWindow();

            PW.Show();
            ProgressBar PB = PW.progressBar1;

            PB.Maximum = F.panel1.Controls.Count;
            PB.Step    = 1;
            PW.Text    = "Exporting sequence... Framerate:" + (int)(1000f / fps);
            Size first = Size.Empty;

            //PW.label1.Text = "Exporting your frame sequence please wait...";
            while (!started /* || CurrentDelay!=0*/ || F.SelectedPanel.ind != 0)
            {
                //started = true;
                timer1_Tick(null, null);
                if (!started || F.SelectedPanel.ind != 0)
                {
                    if (F.SelectedPanel.ind != 0)
                    {
                        started = true;
                    }
                    if (F.SelectedPanel.ind != lastpanel)
                    {
                        Bitmap TB    = F.img[F.SelectedPanel.ind];
                        int    W     = TB.Width - (TB.Width & 1);
                        int    H     = TB.Height - (TB.Height & 1);
                        Bitmap B     = TB;
                        bool   clone = false;
                        if (first.IsEmpty)
                        {
                            first.Width  = W;
                            first.Height = H;
                        }
                        else if (resize)
                        {
                            W = first.Width;
                            H = first.Height;
                        }
                        if (B.Width != W || B.Height != H)
                        {
                            //B = TB.Clone(new Rectangle(0, 0, W, H), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                            Size     s   = new Size(W, H);
                            Bitmap   ret = new Bitmap(s.Width, s.Height);
                            Graphics G   = Graphics.FromImage(ret);
                            Point    P   = Point.Empty;
                            //Point P = new Point((int)(B.Size.Width * (IX * 0.01)), (int)(B.Size.Height * (IY * 0.01)));
                            //Size Sz = new Size((int)(B.Size.Width * (IWidth * 0.01)), (int)(B.Size.Height * (IHeight * 0.01)));
                            Size Sz = s;
                            G.DrawImage(B, new Rectangle(Point.Empty, ret.Size), new Rectangle(P, Sz), GraphicsUnit.Pixel);
                            G.Dispose();
                            B = ret;
                            //return ret;

                            clone = true;
                        }
                        Bitmap temp = B;
                        if (F.Cropper.IWidth != 100 && F.Cropper.IHeight != 100)
                        {
                            B = F.Crop(B);
                        }
                        if (temp != B && temp != TB)
                        {
                            temp.Dispose();
                        }
                        temp = B;
                        B    = F.GetStretch(B);
                        if (temp != B && temp != TB)
                        {
                            temp.Dispose();
                        }
                        temp = null;
                        //B = F.GetStretch(F.Crop(B));
                        clone = true;

                        //B.Save(directory + "/frame" + ("" + frame).PadLeft(5, '0') + ".png");
                        if (MS != null)
                        {
                            MS.Dispose();
                        }
                        MS = new MemoryStream();
                        B.Save(MS, System.Drawing.Imaging.ImageFormat.Png);
                        if (clone && B != TB)
                        {
                            B.Dispose();
                        }
                        B = null;
                        PB.PerformStep();
                        PW.Invalidate();
                        GC.Collect();
                    }
                    using (var fileStream = File.Create(directory + "/frame" + ("" + frame).PadLeft(5, '0') + ".png"))
                    {
                        MS.Seek(0, SeekOrigin.Begin);
                        MS.CopyTo(fileStream);
                    }
                    frame++;
                }
            }
            PW.Close();
            PW.Dispose();
            forcetime = 0;
            timer1.Start();


            //thetimer = new System.Threading.Timer((a) => { pictureBox1.Invalidate(); }, null, 0, 10);
        }