コード例 #1
0
ファイル: frmCaptura.cs プロジェクト: Kraker23/Utilities
        private void Redo()
        {
            if (ImagenG.imgPosterior != null)
            {
                ImagenG.limgAnterior.Add(ImagenG.img);
                ImagenG.img = ImagenG.imgPosterior;
                ImagenG.Redo();
                //ImagenG.imgAnterior = getImgAnterior();


                var rec = new Rectangle(0, 0, ImagenG.img.Width, ImagenG.img.Height);

                Bitmap bmp = new Bitmap(ImagenG.img.Width, ImagenG.img.Height);
                using (var g = Graphics.FromImage(bmp))
                {
                    //g.DrawImage(img, new Rectangle(0, 0, rec.Width, rec.Height), rec, GraphicsUnit.Pixel);
                    g.DrawImage(ImagenG.img, new Rectangle(0, 0, ImagenG.img.Width, ImagenG.img.Height), rec, GraphicsUnit.Pixel);
                }

                //img = bmp;
                ImagenG.img = bmp;

                pck.Image = ImagenG.img;
                pck.Refresh();

                this.tsbRecortar.Checked = false;
                this.activeTool          = eTools.None;

                // calculo de variables de zoom
                calcularZoom();
            }
            visibilidadBtMod();
        }
コード例 #2
0
ファイル: frmCaptura.cs プロジェクト: Kraker23/Utilities
        private void RedoPlus(int pos)
        {
            if (ImagenG.imgPosterior != null)
            {
                ImagenG.limgAnterior.Add(ImagenG.img);
                List <int> posiciones = new List <int>();
                for (int i = 0; i < ImagenG.limgPosterior.Count(); i++)
                {
                    if (pos < i)
                    {
                        posiciones.Add(i);
                        ImagenG.limgAnterior.Add(ImagenG.limgPosterior[i]);
                    }
                }

                //ImagenG.limgPosterior.Add(ImagenG.img);
                ImagenG.img = ImagenG.limgPosterior[pos];
                ImagenG.RedoPlus(posiciones, pos);
                //ImagenG.imgAnterior = getImgAnterior();



                //ImagenG.limgAnterior.Add(ImagenG.img);
                //ImagenG.img = ImagenG.imgPosterior;
                //ImagenG.Redo();
                //ImagenG.imgAnterior = getImgAnterior();


                var rec = new Rectangle(0, 0, ImagenG.img.Width, ImagenG.img.Height);

                Bitmap bmp = new Bitmap(ImagenG.img.Width, ImagenG.img.Height);
                using (var g = Graphics.FromImage(bmp))
                {
                    //g.DrawImage(img, new Rectangle(0, 0, rec.Width, rec.Height), rec, GraphicsUnit.Pixel);
                    g.DrawImage(ImagenG.img, new Rectangle(0, 0, ImagenG.img.Width, ImagenG.img.Height), rec, GraphicsUnit.Pixel);
                }

                //img = bmp;
                ImagenG.img = bmp;

                pck.Image = ImagenG.img;
                pck.Refresh();

                this.tsbRecortar.Checked = false;
                this.activeTool          = eTools.None;

                // calculo de variables de zoom
                calcularZoom();
            }
            visibilidadBtMod();
        }
コード例 #3
0
ファイル: frmCaptura.cs プロジェクト: Kraker23/Utilities
        /// <summary>Recorta una area de la imagen</summary>
        /// <param name="preview">Indica si la acción es el preview o la acción final</param>
        private void recortar(bool preview)
        {
            var rec = new Rectangle(Math.Min(pStart.X, pEnd.X), Math.Min(pStart.Y, pEnd.Y),
                                    Math.Abs(pStart.X - pEnd.X), Math.Abs(pStart.Y - pEnd.Y));

            if (preview)
            {
                if (imgTmp != null)
                {
                    imgTmp.Dispose();
                }
                //imgTmp = (Bitmap)img.Clone();
                imgTmp = (Bitmap)ImagenG.img.Clone();
                using (var g = Graphics.FromImage(imgTmp))
                {
                    var fb = new SolidBrush(Color.FromArgb(100, Color.White));
                    var p  = new Pen(Brushes.Black);
                    p.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;

                    g.FillRectangle(fb, rec);
                    g.DrawRectangle(p, rec);
                }
            }
            else
            {
                if (rec.Height > 0 && rec.Width > 0)
                {
                    ImagenG.limgAnterior.Add(ImagenG.img);
                    Bitmap bmp = new Bitmap(rec.Width, rec.Height);
                    using (var g = Graphics.FromImage(bmp))
                    {
                        //g.DrawImage(img, new Rectangle(0, 0, rec.Width, rec.Height), rec, GraphicsUnit.Pixel);
                        g.DrawImage(ImagenG.img, new Rectangle(0, 0, rec.Width, rec.Height), rec, GraphicsUnit.Pixel);
                    }

                    //img = bmp;
                    ImagenG.img = bmp;

                    this.tsbRecortar.Checked = false;
                    this.activeTool          = eTools.None;
                }

                else
                {
                    MessageBox.Show("Mantener el cursor pulsado mientras se hace la seleccion");
                }
            }

            visibilidadBtMod();
        }
コード例 #4
0
ファイル: frmCaptura.cs プロジェクト: Kraker23/Utilities
        private void pck_MouseUp(object sender, MouseEventArgs e)
        {
            if (activeTool != eTools.None)
            {
                calcularPosOnImage(e.Location);
                if (!dentroImagen || !editStart)
                {
                    activeTool = eTools.None;
                    pStart     = Point.Empty;
                    pEnd       = Point.Empty;
                    editStart  = false;
                }
                else
                {
                    pEnd = new Point(this.relImgPosX, this.relImgPosY);
                    //if (pStart.X - pEnd.X!=0 && pStart.Y - pEnd.Y != 0)
                    //{
                    switch (activeTool)
                    {
                    case eTools.Flecha: this.flecha(false); break;

                    case eTools.Linea: this.line(false); break;

                    case eTools.Recortar: this.recortar(false); break;

                    case eTools.Rectangulo: this.rectangulo(false); break;
                    }

                    if (imgTmp != null)
                    {
                        imgTmp.Dispose();
                        imgTmp = null;
                    }
                    //pck.Image = img;
                    pck.Image = ImagenG.img;
                    pck.Refresh();
                    calcularZoom();

                    //activeTool = eTools.None;
                    pStart    = Point.Empty;
                    pEnd      = Point.Empty;
                    editStart = false;
                    //}
                }
            }
        }
コード例 #5
0
ファイル: frmCaptura.cs プロジェクト: Kraker23/Utilities
        /// <summary>Cambio de herramienta. Estable los chechs y herramienta activa</summary>
        /// <param name="tsb">botón pulsado. Puede ser nulo al esteablecer la herramienta a None</param>
        /// <param name="newTool">herramienta a selecciónar o desseleccionar.</param>
        private void cambiarHerramienta(ToolStripButton tsb, eTools newTool)
        {
            if (tsb == null || tsb.Checked)
            {
                activeTool = eTools.None;
            }
            else
            {
                activeTool = newTool;
            }

            foreach (ToolStripItem b in toolStrip1.Items)
            {
                if (b is ToolStripButton)
                {
                    ((ToolStripButton)b).Checked = false;
                }
            }

            if (tsb != null && activeTool != eTools.None)
            {
                tsb.Checked = true;
            }
        }
コード例 #6
0
        /// <summary>Recorta una area de la imagen</summary>
        /// <param name="preview">Indica si la acción es el preview o la acción final</param>
        private void recortar(bool preview)
        {
            var rec = new Rectangle(Math.Min(pStart.X, pEnd.X), Math.Min(pStart.Y, pEnd.Y),
                                    Math.Abs(pStart.X - pEnd.X), Math.Abs(pStart.Y - pEnd.Y));

            if (preview)
            {
                if (imgTmp != null)
                {
                    imgTmp.Dispose();
                }
                imgTmp = (Bitmap)img.Clone();
                using (var g = Graphics.FromImage(imgTmp))
                {
                    var fb = new SolidBrush(Color.FromArgb(100, Color.White));
                    var p  = new Pen(Brushes.Black);
                    p.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;

                    g.FillRectangle(fb, rec);
                    g.DrawRectangle(p, rec);
                }
            }
            else
            {
                Bitmap bmp = new Bitmap(rec.Width, rec.Height);
                using (var g = Graphics.FromImage(bmp))
                {
                    g.DrawImage(img, new Rectangle(0, 0, rec.Width, rec.Height), rec, GraphicsUnit.Pixel);
                }

                img = bmp;

                this.tsbRecortar.Checked = false;
                this.activeTool          = eTools.None;
            }
        }