我正在尝试使用以下方法调整图像大小
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
string filename = openFileDialog1.FileName;
Image img = Image.FromFile(filename);
ImageFormat imageFormat = img.RawFormat;
resizeImage(img, new Size(512, ScaleImage(512, img.Width, img.Height))).Save(@"c:\temp\temp.jpg", imageFormat); ;
}
private int ScaleImage(int RequiredSize, int currentSize, int CurrentOpposite)
{
return (int)((decimal)RequiredSize / (decimal)currentSize * (decimal)CurrentOpposite);
}
private static Image resizeImage(Image imgToResize, Size size)
{
int destWidth = size.Width;
int destHeight = size.Height;
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return (Image)b;
}
在我的电脑上,win7,8GB内存,bla bla,它工作正常。得到的图像很清晰,没有任何问题。 如果我在服务器上运行此代码,w2k3,16GB ram等,结果图像太可怕了。它是像素化的,看起来像被压缩到地狱而已。
如果我给它一个大约1024宽度的图像,它可以正常工作。从手机上拿出一些东西,3500横跨它,然后把它搞砸了。
我很难过为什么它在服务器上的表现会如此不同。使用image.getThumbNail也是如此。
请在明信片上发表评论。
由于 克里斯平