这是一段加水印的代码,为什么有的图片加上后字体比较大有的就很小呢?
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 的属性,让用户自己输入距离左边距的距离,当然设置之后要能看到效果。
另一个方法就是根据字数计算一下了,要考虑到英文占半格字符的情况,还有就是不同的英文字体每个字母的宽度是否相同。
字号定了,字应该不会变的,除非是跟随图片一起被放大(或者缩小)了。