看下图
我指定了三种颜色:背景、前景和边框。他们对我来说还不错。用户只能更改背景和前景色。我怎样才能自动计算框架颜色并确保它不同于背景和前景色(如果这种颜色看起来不会太糟糕就太好了)。
编辑
将给定颜色视为默认颜色模式。因此,默认使用 3 种硬编码颜色。但是,用户可以设置自定义背景和/或前景色。因此,即使已知框架颜色的默认背景/前景颜色,也应该为用户能够指定的所有自定义背景/前景颜色自动计算。
常量:
bkg_color
- 默认背景色frg_color
- 默认前景色frame_color
- 默认框架颜色
输入:
custom_bkg_color
- 自定义背景色custom_frg_color
- 自定义前景色
输出:
custom_frame_color =
f(bkg_color, frg_color, frame_color, custom_bkg_color, custom_frg_color)
颜色是 24 位 RGB。图片只是为了可视化。
最佳答案
你确定图片一定是那个形状吗?如果是,那么您只需要获取左上角(第一个像素)和中心像素的像素颜色即可获得背景(第一个像素)和前景(中心像素)的颜色。然后你可以计算它们之间的平均值,这会给你不同的颜色。如果它们之间相似,则“平均”颜色可能与其他两个非常相似。如果是这种情况,您可以进行一些其他操作。
关于algorithm - 计算不同于背景和前景的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219155/