导航

asp.net 绘图操作输出图片、上传图片、给图片加水印

Posted on 2011-04-07 14:26  yjss  阅读(393)  评论(0编辑  收藏  举报

缩放及输出图像

            int imageHight = int.Parse(TextBox1.Text);
            int imageWidth = imageHight / 50 * 300;
            using (Bitmap image = new Bitmap(300, 50))
            {
                using (Graphics g = Graphics.FromImage(image))
                {
                    g.FillRectangle(Brushes.White, 1, 1, 295, 45);
                    Font font = new Font("黑体", 20, FontStyle.Regular);
                    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                    g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
                    g.DrawString("输出图像", font, Brushes.SkyBlue, 10, 5);
                    System.Drawing.Image pic = image.GetThumbnailImage(imageWidth, imageHight, null, IntPtr.Zero);
                    pic.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
                }
            }

上传并给图片加水印

            if (FileUpload1.HasFile)
            {
                string filename = Server.MapPath("\\") + FileUpload1.FileName;
                FileUpload1.SaveAs(filename);
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream(FileUpload1.FileBytes))
                {
                    using (Bitmap image = new Bitmap(ms))
                    {
                        using (Graphics g = Graphics.FromImage(image))
                        {
                            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                            g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
                            
                            string drawString="水印在此 谁敢盗用";
                            Font font = new Font("黑体", 10, FontStyle.Regular);
                            SizeF size = g.MeasureString(drawString, font);

                            g.DrawString(drawString, font, Brushes.SkyBlue, image.Width - size.Width, image.Height - size.Height);
                            image.Save(filename, System.Drawing.Imaging.ImageFormat.Png);
                        }
                    }
                }
                Image1.ImageUrl = "\\" + FileUpload1.FileName;
            }