C# 如何在位图(Winforms)上绘制清晰的文本?
我已经编写了一个照片查看器,我想在照片上叠加文本。我希望字体或字体颜色使文本尽可能清晰地显示在位图顶部,而不管底层位图是什么样子 我目前的想法是,取位图中文本将出现的区域,对该区域进行某种“整体颜色”计算,然后将字体颜色设置为相应的对比度 然而,这个数学是我的头。有没有人见过这种“所有这些像素的平均颜色是多少”的计算方法?或者这甚至不是最好的方法C# 如何在位图(Winforms)上绘制清晰的文本?,c#,winforms,text,bitmap,C#,Winforms,Text,Bitmap,我已经编写了一个照片查看器,我想在照片上叠加文本。我希望字体或字体颜色使文本尽可能清晰地显示在位图顶部,而不管底层位图是什么样子 我目前的想法是,取位图中文本将出现的区域,对该区域进行某种“整体颜色”计算,然后将字体颜色设置为相应的对比度 然而,这个数学是我的头。有没有人见过这种“所有这些像素的平均颜色是多少”的计算方法?或者这甚至不是最好的方法 编辑:我将此问题的第二部分转移到另一个问题。您可以使用此选项计算位图区域的平均颜色: 您是否将图像存储为位图 您还可以绘制轮廓文本。例如,带有黑色轮廓
编辑:我将此问题的第二部分转移到另一个问题。您可以使用此选项计算位图区域的平均颜色: 您是否将图像存储为
位图
您还可以绘制轮廓文本。例如,带有黑色轮廓的白色文本。这将使文本在大多数背景上可见:
我可能应该提到,文本不会太大;它本质上是图像元数据。所以我怀疑大纲字体不起作用。然而,这是一篇非常有用的文章,我将其添加到书签中:-)至于“我是否将图像存储为位图”,我非常灵活。我从文件中读取图像并将其分配给PictureBox图像。如果我计算得好的话,我会在图片盒上加一个透明的标签,并相应地设置字体颜色。这太棒了!我偷了蒂尔的密码。看起来这正是我需要的。现在。。。呃,我如何抓取原始位图的一个区域,并将其转换为可以提供给Till代码的位图?我有坐标。。。只是不知道如何从他们的另一个位图…我想你可以修改一下代码。只需将
Rectangle
作为CalculatearAgeColor
函数的参数传递,并相应地修改x
和y
循环,以从矩形、左和矩形、上到矩形、右和矩形、下循环。