int newWidth = 100;
int newHeight = 100;
double ratio = 0;
if (img1.Width > img1.Height)
{
ratio = img1.Width / img1.Height;
newHeight = (int)(newHeight / ratio);
}
else
{
ratio = img1.Height / img1.Width;
newWidth = (int)(newWidth / ratio);
}
Image bmp1 = img1.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);
bmp1.Save(Server.MapPath("~/Uploads/Photos/Thumbnails/") + photo.PhotoID + ".jpg");
I always get Image with both height and width having same values (100)
I am obiously doing something wrong with type conversion?
Width and Height are integers. You will be performing integer math on these values before storing them in your double. In integer math, 150 / 100 is 1. 199 / 100 is 1. 101 / 100 is 1. There are no decimals. After the value has been calculated, then it will be stored in your double.
Cast at least one side to double before doing your calculation.