In my program i need to zoom in and zoom out alot
so
after multiple of zooming in and out the image go damage
and that is the code if any one have other ideas or programming hint plz help me fast
#region Zooming Methods
/// <summary>
/// Make the PictureBox dimensions larger to effect the Zoom.
/// </summary>
/// <remarks>Maximum 5 times bigger</remarks>
private void ZoomIn()
{
if ( ( PicBox.Width < ( MINMAX * OuterPanel.Width ) ) &&
( PicBox.Height < ( MINMAX * OuterPanel.Height ) ) )
{
PicBox.Width = Convert.ToInt32 ( PicBox.Width * ZOOMFACTOR );
PicBox.Height = Convert.ToInt32 ( PicBox.Height * ZOOMFACTOR );
NewImage(Class1.bmp,PicBox.Width,PicBox.Height);
PicBox.SizeMode = PictureBoxSizeMode.StretchImage;
ZOOMINGTIMES++;
}
}
/// <summary>
/// Make the PictureBox dimensions smaller to effect the Zoom.
/// </summary>
/// <remarks>Minimum 5 times smaller</remarks>
private void ZoomOut()
{
if ( ( PicBox.Width > ( OuterPanel.Width / MINMAX ) ) &&
( PicBox.Height > ( OuterPanel.Height / MINMAX ) ) )
{
PicBox.SizeMode = PictureBoxSizeMode.StretchImage;
PicBox.Width = Convert.ToInt32 ( PicBox.Width / ZOOMFACTOR );
PicBox.Height = Convert.ToInt32 ( PicBox.Height / ZOOMFACTOR );
NewImage(Class1.bmp, PicBox.Width, PicBox.Height);
ZOOMINGTIMES--;
}
}
#endregion
#region Mouse events
/// <summary>
/// We use the mousewheel to zoom the picture in or out
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PicBox_MouseWheel(object sender, MouseEventArgs e)
{
if ( e.Delta < 0 )
{
ZoomOut();
}
else
{
ZoomIn();
}
}
private void NewImage(Bitmap bmp1, int newWidth, int newHeight)
{
iniImg = Class1.bmp;
changedImg = new Bitmap(iniImg, newWidth, newHeight);
PicBox.Image = changedImg;
Class1.bmp = changedImg;
g = Graphics.FromImage(changedImg);
}
and that is the image before zooming in and out
http://www.arabteam2000-forum.com/uploads/monthly_06_2007/post-30356-1182179495.jpg
and that is after
http://www.arabteam2000-forum.com/uploads/monthly_06_2007/post-30356-1182179483.jpg