缩略图(转载)

public void GreateMiniImage(string oldpath, string newpath, int tWidth, int tHeight)
        {
            try
            {
                System.Drawing.Image image = System.Drawing.Image.FromFile(oldpath);
                double bl = 1d;
                if ((image.Width <= image.Height) && (tWidth >= tHeight))
                {
                    bl = Convert.ToDouble(image.Height) / Convert.ToDouble(tHeight);
                }
                else if ((image.Width > image.Height) && (tWidth < tHeight))
                {
                    bl = Convert.ToDouble(image.Width) / Convert.ToDouble(tWidth);
                }
                else if ((image.Width <= image.Height) && (tWidth <= tHeight))
                {
                    if (image.Height / tHeight >= image.Width / tWidth)
                    {
                        bl = Convert.ToDouble(image.Width) / Convert.ToDouble(tWidth);
                    }
                    else
                    {
                        bl = Convert.ToDouble(image.Height) / Convert.ToDouble(tHeight);
                    }
                }
                else
                {
                    if (image.Height / tHeight >= image.Width / tWidth)
                    {
                        bl = Convert.ToDouble(image.Height) / Convert.ToDouble(tHeight);
                    }
                    else
                    {
                        bl = Convert.ToDouble(image.Width) / Convert.ToDouble(tWidth);
                    }
                }
                Bitmap b = new Bitmap(image, Convert.ToInt32(image.Width / bl), Convert.ToInt32(image.Height / bl));
                //保存本地
                b.Save(newpath);
                //输出客户端
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                b.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                Response.ClearContent();
                Response.ContentType = "image/Gif";
                Response.BinaryWrite(ms.ToArray());

                b.Dispose();
                image.Dispose();
            }
            catch
            {
            }
        }

posted @ 2008-10-22 11:39  昕友软件开发  阅读(210)  评论(0编辑  收藏  举报
欢迎访问我的开源项目:xyIM企业即时通讯