以下代码版断是小北写的一个图片上传加水印的代码,但在图片加水印上传后图片就变大了,将近一倍。请高手将代码补充一下,尽量使加水印后的图片与原图一样大,并且图片质量也要有太大下降。using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Design;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;namespace UserControlLibrary
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
  public class WebForm2 : System.Web.UI.Page
  {
protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.HtmlControls.HtmlInputFile FileUpload; private System.Drawing.Image Img ; private Graphics Gimage ; private Bitmap Bimage  ;
private void Page_Load(object sender, System.EventArgs e)
{

} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
             this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
Stream InputStreamImage = FileUpload.PostedFile.InputStream ; string FileName = FileUpload.PostedFile.FileName ; string FileExtentName = FileName.Substring( FileName.LastIndexOf( "." ) + 1 ) ; byte[] ImgBinaryData = new byte[ FileUpload.PostedFile.ContentLength] ; InputStreamImage.Read( ImgBinaryData , 0 , FileUpload.PostedFile.ContentLength ) ;

Img = System.Drawing.Image.FromStream( InputStreamImage ) ; Bimage = new Bitmap( Img ,Img.Width , Img.Height ) ; Font FontName = new Font( "Verdana" , 20 ) ; Brush BrushStyle = new SolidBrush( Color.Black ); Rectangle RectangleP = new Rectangle( 0 , 0 ,50 , 50 ) ;
Gimage = Graphics.FromImage( Bimage ) ; Gimage.DrawString( "我的图片" , FontName , BrushStyle , RectangleP ) ; Gimage.Save() ;

         Bimage.SetResolution( Img.HorizontalResolution , Img.VerticalResolution ) ; Bimage.Save( Server.MapPath( "images/dd." + FileExtentName ) )  ; }
    }
}

解决方案 »

  1.   

    Stream InputStreamImage = FileUpload.PostedFile.InputStream ;   Bimage = new Bitmap(this.FileUpload.PostedFile.InputStream);
    Font FontName = new Font( "Verdana" , 20 ) ; Brush BrushStyle = new SolidBrush( Color.Black ); Rectangle RectangleP = new Rectangle( 0 , 0 ,100 , 100 ) ;
    Gimage = Graphics.FromImage( Bimage ) ; Gimage.DrawString( "我的图片" , FontName , BrushStyle , RectangleP ) ;

    //Gimage.Save() ;

    //Bimage.SetResolution( Img.HorizontalResolution , Img.VerticalResolution ) ; Bimage.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);