Zoom Image problem....

Jul 6 2010 7:22 AM
Hi,

Have resize the image to fit the picture box (for other purpose). now i tried to zoom in the image and i succeed on it. but my problem is when i zoom the image the image get zoomed and image moves toward right.

if I use zero instead of c(in below code) the image placed at the left corner and when zoomed it starts from there. but i need to place the image in that particular location.

How can zoom the image without changing the position of the image.

Thanks in advance.



 //sz1 = (800, 600)
private Image resizeimage(Image my, Size sz1)
{
double ratio = 0d;
double myThumbWidth = 0d;
double myThumbHeight = 0d;
Bitmap bp;
int c;
int d;

if ((my.Width / Convert.ToDouble(sz1.Width)) > (my.Height /
Convert.ToDouble(sz1.Height)))
ratio = Convert.ToDouble(my.Width) / Convert.ToDouble(sz1.Width);
else ratio = Convert.ToDouble(my.Height) / Convert.ToDouble(sz1.Height);


myThumbHeight = Math.Ceiling(my.Height / ratio);
myThumbWidth = Math.Ceiling(my.Width / ratio);
Size thumbSize = new Size((int)myThumbWidth, (int)myThumbHeight);
bp = new Bitmap(sz1.Width, sz1.Height);
c = (sz1.Width - thumbSize.Width) / 2;
d = (sz1.Height - thumbSize.Height);
System.Drawing.Graphics g = Graphics.FromImage(bp);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
rect = new Rectangle(c, d, thumbSize.Width, thumbSize.Height);
g.DrawImage(my, rect, 0, 0, my.Width, my.Height, GraphicsUnit.Pixel);
if (f == false)
{
sz = bp.Size;
pictureBox1.Size = sz;
}
rect = new Rectangle(0, 0, 0, 0);
return (bp);
// this will trigged when clicked on the picture box
public void ZoomIn()
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
if (sz.Width >= c)
MessageBox.Show("Max ZoomIn");
else {
sz.Width += 50;
sz.Height += 50;

pictureBox1.Size = sz;
pictureBox1.Invalidate();
}



Answers (2)