文本“光晕”指的是围绕在一段文本周围的浅色边界。这有的时候也被叫做“stroking”。这是一项非常有用的技术,因为它会帮助图片上的文本更加突出,尤其是当图片上的内容和色彩很繁杂的时候。
例如向地图增加带有光晕的文本要比不带光晕的文本更加引人注目。利用Photoshop或者The GIMP这样的高质量的图形处理软件,光晕效果很容易实现,但是通过编程来实现这一效果却并不是那么轻而易举的事情。
即便如此,它还是可以通过编程来完成的。这里的关键是创建一个能够接受.NET的Bitmap(位图)对象并添加带有光晕文本的对象。
光晕的基本概念
光晕代码背后的基本概念是创建一个带有文本的图片,并在所有的方向上都让工作帆布增加1个像素的大小(因为光晕就是1个像素这么宽),再在文本图片中寻找属于该文本的所有像素,产生围绕这些像素的阴影,直到这些像素不再是文本的一部分。图A和图B显示的就是光晕效果如何帮助文本更加突出。
图A |
|
图B |
|
第一步:创建一个和文本本身一致的图片
在列表A里,我们用到了GraphicsMapEditor对象(System.Drawing.Graphics的一个实例)来发现在绘图的时候文本自身的大小是多少,并生成一个比需要用到的文本高2个像素和宽2个像素的Bitmap对象。然后,我们用自己习惯的笔刷和字体画出图片上的文字。