C#picturebox带来了Red X.

时间:2016-08-08 09:39:38

标签: c#

我正在尝试缩放图像。这是我的代码。有时Red X框出现了。无法解决此问题。如果有人能帮助我,那就太棒了。

 private void radbtnZoomIn_Click(object sender, EventArgs e)
        {
            try
            {
                m_PresentAngle = 0;
                GC.Collect();
                Image OriginalImg = System.Drawing.Image.FromFile(m_filepath);
                OriginalImg.SelectActiveFrame(System.Drawing.Imaging.FrameDimension.Page, m_intCurrPage);
                if (OriginalImg != null  && m_zoomInPresentPercent < 500)
                {
                    int zoomPercentRequired = 0;
                    if(m_zoomInPresentPercent >=100)
                    {
                        zoomPercentRequired = m_zoomInPresentPercent + 100;
                    }
                    else
                    {
                        zoomPercentRequired = m_zoomInPresentPercent + 20;
                    }
                                        cbZoomPercentage.Text = zoomPercentRequired + "%";
                    double zoom = zoomPercentRequired / 100.0;
                    Bitmap bmp = new Bitmap(OriginalImg, Convert.ToInt32(OriginalImg.Width * zoom), Convert.ToInt32(OriginalImg.Height * zoom));
                    Graphics g = Graphics.FromImage(bmp);
                    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    pictureBox1.Image = bmp;
                    img = pictureBox1.Image;

                    m_zoomInPresentPercent = zoomPercentRequired;
                }
                if (!(m_zoomInCount > 5))
                {
                    m_zoomInCount++;
                }
                if(m_zoomOutCount >0)
                { 
                    m_zoomOutCount--;
                }
                GC.Collect();
            }
            catch(Exception ex)
            {
                try
                {
                    GC.Collect();
                    MessageBox.Show("The image is too small or too big to be zoomed. Loading the original Image");

                    DisposeImage();
                    RefreshImage(m_filepath, m_width, m_height);
                    GC.Collect();
                }
                catch(Exception exp)
                {
                    throw new Exception("From Zoom, " + exp.Message + " The Application needs to exit");
                }
            }
        }

0 个答案:

没有答案