当前位置: 代码迷 >> ASP.NET >> 这是一段加水印的代码,为何有的图片加上后字体比较大有的就很小呢
  详细解决方案

这是一段加水印的代码,为何有的图片加上后字体比较大有的就很小呢

热度:3059   发布时间:2013-02-26 00:00:00.0
这是一段加水印的代码,为什么有的图片加上后字体比较大有的就很小呢?
System.Drawing.Image   image   =   System.Drawing.Image.FromFile(sourcepath);
Graphics   g   =   Graphics.FromImage(image);
g.DrawImage(image,   0,   0,   image.Width,   image.Height);
Font   f   =   new   Font( "华文彩云 ",   12);
Brush   b   =   new   SolidBrush(Color.FromArgb(110,   255,   255,   255));
string   addText   =   "科伟达   KEEPAHEAD ";
g.DrawString(addText,   f,   b,   0,   (image.Height   -   f.Height)   /   2);
g.Dispose();
image.Save(outpath);
image.Dispose();

还有就是怎么让字体居中显示呢?

------解决方案--------------------------------------------------------
g.DrawString(addText, f, b, 0, (image.Height - f.Height) / 2);

0 是水平位置,(image.Width - f.Width) / 2
------解决方案--------------------------------------------------------
被打水印的图片大,水印的字就小了,要想大小差不多,需要取出被打水印图片的宽高,进行比例缩放
------解决方案--------------------------------------------------------
我做的时候是设置一个 Left 的属性,让用户自己输入距离左边距的距离,当然设置之后要能看到效果。

另一个方法就是根据字数计算一下了,要考虑到英文占半格字符的情况,还有就是不同的英文字体每个字母的宽度是否相同。

字号定了,字应该不会变的,除非是跟随图片一起被放大(或者缩小)了。
  相关解决方案