日期:2014-05-19  浏览次数:20499 次

这段代码为什么为图片加不上水印呢?
以下代码为什么加不上水印,也没有报错.请教下大家:

System.Drawing.Image   image=System.Drawing.Image.FromFile(topPicFile.PostedFile.FileName);//得到一已存在的文件
System.Drawing.Graphics   g=System.Drawing.Graphics.FromImage(image);
//以下声明FONT
string   fontName;//
if(fontF1.SelectedIndex==0)
{
fontName= "宋体 ";
}
else
{
fontName=fontF1.SelectedValue.ToString();
}
int   fontSize=Int32.Parse(fontS1.Text.Trim());

System.Drawing.FontStyle   fs=new   System.Drawing.FontStyle();
if(B1.Checked)
{
fs|=System.Drawing.FontStyle.Bold;
}
if(U1.Checked)
{
fs|=System.Drawing.FontStyle.Underline;
}
if(I1.Checked)
{
fs|=System.Drawing.FontStyle.Italic;
}
System.Drawing.Font   font1=new   System.Drawing.Font(fontName,fontSize,fs);

//declear   bush
int   red=Int32.Parse(bushC1.Text.Trim().Substring(0,2),System.Globalization.NumberStyles.HexNumber);//TextBox中提供颜色,并转化为十进制的.
int   green=Int32.Parse(bushC1.Text.Trim().Substring(2,2),System.Globalization.NumberStyles.HexNumber);
int   blue=Int32.Parse(bushC1.Text.Trim().Substring(4,2),System.Globalization.NumberStyles.HexNumber);

System.Drawing.Color   co1=System.Drawing.Color.FromArgb(red,green,blue);

System.Drawing.Brush   bush1=new   System.Drawing.SolidBrush(co1);
//得到要加水印的pointF
System.Drawing.PointF   point1=new   System.Drawing.PointF();
point1.X=Int32.Parse(X1.Text.Trim());
point1.Y=Int32.Parse(Y1.Text.Trim());
g.DrawString(string1.Text,font1,bush1,point1);
//保存.
image.Save(savePath);//savePath是已存在的文件侠和文件名如: "C:\pic.jpg "
g.Dispose();
image.Dispose();

------解决方案--------------------
有的图像是这个改后缀名的,比如a.gif,你改成a.jpg,虽然可以显示,但是无法加水印。