打印本文 打印本文 关闭窗口 关闭窗口
asp.net(C#)上传大图片并生成缩略图源代码
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1265  更新时间:2009/6/9 2:34:09  文章录入:mintao  责任编辑:mintao

//上传图片并生成缩略图
        public string Outputimg(HttpPostedFile fileUpload)
        {
            #region Outputimg
            Graphics g = null;
            System.Drawing.Image upimage = null;
            System.Drawing.Image thumimg = null;
            System.Drawing.Image simage = null;
            Bitmap outputfile = null;
            String filename = "";
            try
            {
                filename = String.Format("{0}{1}", Guid.NewGuid().ToString("N"), Path.GetExtension(fileUpload.FileName));
                string smallpath = "//111.111.1.111/uploadfile/smallimg/";
                string bigpath = "//111.111.1.111/uploadfile/bigimg/";
                int width, height, newwidth, newheight;
                System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
                if (!Directory.Exists(smallpath))
                {
                    Directory.CreateDirectory(smallpath);
                }
                if (!Directory.Exists(bigpath))
                {
                    Directory.CreateDirectory(bigpath);
                }
                fileUpload.SaveAs("//111.111.1.111/uploadfile/bigimg/" + filename);

                Stream upimgfile = fileUpload.InputStream;
                string simagefile = "//111.111.1.111/uploadfile/bigimg/" + filename; //要加水印的文件
                simage = System.Drawing.Image.FromFile(simagefile);
                upimage = System.Drawing.Image.FromStream(upimgfile); //上传的图片
                width = upimage.Width;
                height = upimage.Height;
                //[color=#FF0000]宽、高[/color]
                thumimg = upimage.GetThumbnailImage(140, 120, callb, IntPtr.Zero);
                outputfile = new Bitmap(upimage);
                g = Graphics.FromImage(outputfile);
                g.DrawImage(simage, new Rectangle(upimage.Width - simage.Width, upimage.Height - simage.Height, upimage.Width, upimage.Height), 0, 0, upimage.Width, upimage.Height, GraphicsUnit.Pixel);


                thumimg.Save("//111.111.1.111/uploadfile/smallimg/" + filename);
                outputfile.Dispose();
            }
            catch
            {
                // throw ex;
            }
            finally
            {
                if (g != null)
                    g.Dispose();
                if (thumimg != null)
                    thumimg.Dispose();
                if (upimage != null)
                    upimage.Dispose();
                if (simage != null)
                    simage.Dispose();

            }
            return filename;
            #endregion
        }
        public bool ThumbnailCallback()
        {
            return false;
        }
//结束

打印本文 打印本文 关闭窗口 关闭窗口