【发布时间】:2014-09-23 03:38:51
【问题描述】:
我编写了一个照片查看器,我想在照片上叠加文字。无论底层位图是什么样子,我都希望字体或字体颜色使位图顶部的文本尽可能清晰。
我目前的想法是取位图的文本将出现的区域,对该区域进行某种“整体颜色”计算,然后将字体颜色设置为相应的对比。
但是,这个数学计算方式超出了我的想象。有没有人见过一种方法来进行这种“所有这些像素的平均颜色是多少”计算?或者这甚至不是最好的方法?
编辑:我将第二部分移至另一个问题。
【问题讨论】:
我编写了一个照片查看器,我想在照片上叠加文字。无论底层位图是什么样子,我都希望字体或字体颜色使位图顶部的文本尽可能清晰。
我目前的想法是取位图的文本将出现的区域,对该区域进行某种“整体颜色”计算,然后将字体颜色设置为相应的对比。
但是,这个数学计算方式超出了我的想象。有没有人见过一种方法来进行这种“所有这些像素的平均颜色是多少”计算?或者这甚至不是最好的方法?
编辑:我将第二部分移至另一个问题。
【问题讨论】:
您可以使用它来计算位图区域的平均颜色:
How to calculate the average rgb color values of a bitmap
您是否将图像存储为Bitmap?
您还可以绘制轮廓文本。例如,带有黑色轮廓的白色文本。这将使文本在大多数背景上可见: How to Drawing Text with Outline onto Images?
【讨论】:
Rectangle 作为CalculateAverageColor 函数的参数传递并修改x 和y 循环以从Rectangle.Left 和Rectangle.Top 相应地循环到Rectangle.Right 和Rectangle.Bottom。