我正在尝试缩放图像。这是我的代码。有时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");
}
}
}