C# GetThumbnailImageAbort

        private void button1_Click(object sender, EventArgs e)
        {
            Graphics g = null;
            System.Drawing.Image upimage = null;
            System.Drawing.Image thumimg = null;
            System.Drawing.Image simage = null;
            Bitmap outputfile = null;
            try
            {
                string extension = Path.GetExtension("D:\\1.jpg").ToUpper();//File1.PostedFile.FileName
                string filename = DateTime.Now.ToString("yyyyMMddhhmmss");
                string smallpath = "d:\\";//Server.MapPath(".") + "/smallimg/";
                string bigpath = "d:\\";//Server.MapPath(".") + "/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);
                FileStream File1 = new FileStream("d:\\1.jpg", FileMode.Open, FileAccess.ReadWrite);
                byte[] data = new byte[File1.Length];
                File1.Read(data,0,data.Length);
                File1.Close();
               
                //Stream upimgfile =File1.PostedFile.InputStream;
                MemoryStream upimgfile = new MemoryStream(data);
                string simagefile = "d:\\click.PNG"; //Server.MapPath("a8logo.jpg");
                //要加水印的文件
                simage = System.Drawing.Image.FromFile(simagefile);
                upimage = System.Drawing.Image.FromStream(upimgfile);
                //上传的图片
                width = upimage.Width;
                height = upimage.Height;
                if (width > height)
                {
                    newwidth = 200;
                    newheight = (int)((double)height / (double)width * (double)newwidth);
                }
                else
                {
                    newheight = 200;
                    newwidth = (int)((double)width / (double)height * (double)newheight);
                }
                thumimg = upimage.GetThumbnailImage(newwidth, newheight, 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);
                string newpath = bigpath + filename + extension; //原始图路径
                string thumpath = smallpath + filename+"snap" + extension; //缩略图路径
                outputfile.Save(newpath);
                thumimg.Save(thumpath);
                outputfile.Dispose();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (g != null)
                    g.Dispose();
                if (thumimg != null)
                    thumimg.Dispose();
                if (upimage != null)
                    upimage.Dispose();
                if (simage != null)
                    simage.Dispose();
            }
        }

        public bool ThumbnailCallback()
        {
            return false;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值