السلام عليكم
انا عندى فى برنامج بيحتاج ان انا اعمل
zoom in and zoom out
فكل لما اكتر العمليات دى الصورة بتبقى damage
الكود بتاعى اهو و يا ريست اللى عندة اى افكار برمجة او كود تانى يقول
#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);
}وفى المرفقات الصورة قبل و بعد