日期:2014-05-19  浏览次数:20727 次

图片缩略问题
网络上很多的生成缩略图的代码,但生成的代码压缩率太高,造成图片失真.我用的方法也是这样:
g.InterpolationMode   =   System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.SmoothingMode   =   System.Drawing.Drawing2D.SmoothingMode.HighQuality;
已将质量设到最高,还是这样,上传一个200K的图片,会缩到不到20K,请问各位高手,如何能将质量改变呢?比如蜂鸟的图库的缩略,这个效果就非常好

------解决方案--------------------
http://blog.csdn.net/zhoufoxcn/archive/2007/01/04/1474167.aspx

这是我自己做的一个图片缩略软件,可以批量缩略图片,还可以按照设置大小或者比率来调整。
------解决方案--------------------
不过我的思路跟他们的不一样,或许内部原理是一样吧。
------解决方案--------------------
private void ShowThumbnail(string oldfile, string newfile, int h, int w)
{

System.Drawing.Image img = System.Drawing.Image.FromFile(oldfile);
System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);

int oldh = img.Height;
int oldw = img.Width;

int newh,neww;

double h1 = oldh*1.0/h;
double w1 = oldw*1.0/w;

double f = (h1> w1)? h1:w1;

if(f < 1.0)
{
newh = oldh;
neww = oldw;
}
else
{
newh = (int)(oldh/f);
neww = (int)(oldw/f);
}

System.Drawing.Image myThumbnail = img.GetThumbnailImage(neww, newh, myCallback, IntPtr.Zero);

myThumbnail.Save(newfile, System.Drawing.Imaging.ImageFormat.Jpeg);

img.Dispose();
myThumbnail.Dispose();
}
private bool ThumbnailCallback()
{
return false;
}

------解决方案--------------------
http://www.wave12.com/web/home.asp
缩略图水印组件wsImage3.5