我在生成水印的时候水印文字老是按图片比例走,怎么才能让水印文字固定大小,下面是代码private void DoUpload(string filename1)
{

string path = Server.MapPath(".") + "/temp/" + filename1;
UploadFile.PostedFile.SaveAs(path);
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
Graphics g = Graphics.FromImage(image);
g.DrawImage(image, 0, 0, image.Width, image.Height);
Font f = new Font("Impact",9);

Brush b = new SolidBrush(Color.White);
string addText = "http://www.cn-solar.net";
g.DrawString(addText, f, b, 10, 10);
g.Dispose();
string newPath = Server.MapPath(".") + "/big/" + filename1;
image.Save(newPath);
image.Dispose();
if(File.Exists(path))
{
File.Delete(path);
}

}

解决方案 »

  1.   

    g.DrawImage(image, 0, 0, image.Width, image.Height);
    原样重画一遍是什么意思?另:没必要保存到文件,可以直接从流得到Image
      

  2.   

    你是在原图上画的,当然按图片比例走可以新建一个Bitmap对象,源Image与新的宽高传入
    Bitmap bm = new Bitmap(srcImage,newWidth, newHeight)
      

  3.   

    Graphics g = Graphics.FromImage(bm);
    再用g来画注:Bitmap继承自Image
      

  4.   

    UploadFile.PostedFile.SaveAs(path);
    System.Drawing.Image image = System.Drawing.Image.FromFile(path);
    改为:
    System.Drawing.Image image = System.Drawing.Image.FromStream(UploadFile.PostedFile.InputStream);
      

  5.   

    是啊,新建的Image最好带有Alpha参数,那样才有水印效果啊。不然白字不就把底色遮住了么。
      

  6.   

    http://www.wave12.com/web/SigCon.asp?bCate=39&sCateName=功能介绍&ID=138&CateName=wsImage3.5导航