从 bmp 中获取平均颜色

2023-12-26

我正在为第二个屏幕开发一个任务栏(类似于displayfusion)。

但是,我很难从图标中获得正确的平均颜色。例如 Google Chrome/当我将其悬停在主任务栏上时,它的背景会变成黄色。使用我的代码它会变成橙色/红色。

现在看起来是这样的:

如何获得正确的主色/平均色?

我使用此代码来计算平均颜色:

public static Color getDominantColor(Bitmap bmp)
{
     //Used for tally
     int r = 0;
     int g = 0;
     int b = 0;

     int total = 0;

     for (int x = 0; x < bmp.Width; x++)
     {
          for (int y = 0; y < bmp.Height; y++)
          {
               Color clr = bmp.GetPixel(x, y);    
               r += clr.R;
               g += clr.G;
               b += clr.B;    
               total++;
          }
     }

     //Calculate average
     r /= total;
     g /= total;
     b /= total;

     return Color.FromArgb(r, g, b);
}

平均颜色不一定是最常用的颜色。我建议计算饱和度超过特定阈值的像素的色调,并使用数组创建图像的直方图。 (某个色调值被使用了多少次)。

然后平滑直方图(计算两个邻居的局部平均值),然后得到平滑后的直方图取最大值的位置。

您可以通过以下方式获取 HSL 值:

Color.GetHue
Color.GetSaturation
Color.GetBrightness
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 bmp 中获取平均颜色 的相关文章

随机推荐

  • Pandas:将每小时值重新采样为带有偏移量的每月值

    我想聚合一个pandas Series每小时DatetimeIndex到每月值 同时考虑到午夜的偏移 Example 考虑以下跨度约为 1 5 个月的 统一 时间序列 import pandas as pd hours pd Series
  • Google Maps API 永远不会满足

    如果我将 URL 引荐来源网址身份验证与地理编码 API 结合使用 它会显示 There was an error while trying to fix the Venues geolocation information API key
  • python telebot 得到了意想不到的响应

    我一直在使用我的 Telegram 机器人使用 python 的远程机器人库从我的台式计算机向我发送不同的通知 很长一段时间一切都正常工作 但有一天它停止工作了 这是代码 Python 2 7 import telebot import s
  • 在 Safari 中检测 iOS 上的初始设备方向

    我知道怎么做检测设备方向变化 https developer apple com library safari documentation SafariDOMAdditions Reference DeviceOrientationEven
  • OSGI捆绑异常,maven依赖问题

    我对 OSGI Felix 和 Maven 还很陌生 刚刚开始使用 我正在通过 jenkins 部署 java 构建 并且遇到以下依赖问题 下面是包含依赖项的pom文件内容 我不确定它是否正确 但它仍然抱怨它 它正在寻找 javax jws
  • Qt Creator 无法在 Mac 上启动调试

    最近 我怀疑某些系统 自制程序更新 Qt 的调试器停止工作 它永远挂在Setting up inferior 内部日志 dStart parameters QGIS mode 1 dABI x86 darwin generic mach o
  • SQL 如果没有返回行则执行此操作

    我有一个 select 语句 我想说如果这个 select 语句不返回任何行 则在每个单元格中放置一个 我该怎么做呢 select a b c from t if rowcount 0 select as a as b as c 但请确保你
  • 如何在Python中使用BeautifulSoup从标签中提取innerHTML

    我正在尝试使用以下代码从标签中提取innerHTML theurl http na op gg summoner userName Darshan thepage urlopen theurl soup BeautifulSoup thep
  • google oauth2 刷新令牌何时过期?

    google oauth2 刷新令牌何时过期 我所说的过期的意思是由于已经过了一定的时间跨度而过期 不是因为用户已撤销访问权限或因为用户已请求新的刷新令牌 我做了一些研究 但没有一个引用官方谷歌文档 我也找不到有效的谷歌文档 其他一些问题说
  • Mongo 更新子文档

    我在使用 MongoDB 时似乎遇到了障碍 并且想知道是否有解决方案 而无需修改我的数据库结构 现在我的数据库结构如下 Company id 1 properties property id 1 tags tag id 1 tag valu
  • 使用 PHP/AJAX 从 HTML 表单发送电子邮件

    我想将用户从 HTML 表单填写的信息发送到我的电子邮件地址 根据我的理解 由于电子邮件工作方式的性质 仅使用客户端编码无法完成此操作 因此建议使用 PHP 与 AJAX 结合 来处理服务器端代码 我跟着导游here https stack
  • 无法在 x86 ubuntu linux 上添加自定义系统调用

    我对此很陌生 刚刚了解内核 我正在尝试添加对内核 4 20 4 的自定义调用 这是我所做的步骤 首先我创建文件 kernel printmsg c 包含代码 include
  • 在 Windows 7 上安装 Cabal-dev

    我正在尝试在 Windows 7 上安装 Cabal dev 我已经设法通过使用以下方法解决了无法构建网络的问题 cabal install constraint network installed cabal dev 但是后来我得到了这个
  • Spring Mvc java.io.FileNotFoundException - ApplicationContext.xml

    applicationContext xml 位于 WEB INF 文件夹中 为什么我收到此错误 org springframework beans factory BeanDefinitionStoreException IOExcept
  • IE9 开发者工具中的 IE9 兼容性视图是什么?

    我正在查看 IE 9 开发人员工具 当我单击浏览器模式时 我会看到一个列表 IE 7 IE 8 IE 9 IE 9 Compatibility View 那有什么作用 IE 9 和 IE 9 兼容性视图有什么区别 The main区别在于用
  • kali linux python3-pip 面临的问题

    我面临这个问题 sudo apt get install python3 pip Reading package lists Done Building dependency tree Reading state information D
  • 逆向工程 iWork '13 格式

    Apple iWork 套件的早期版本使用非常简单的文档格式 文档是资源包 文件夹 压缩或未压缩 该捆绑包包含一个index apxl z 以专有但相当容易理解的模式描述文档结构的文件 iWork 13 完全重做了格式 文档仍然是捆绑包 但
  • 如何在 Asp.net MVC 中使用代码优先方法更新模型和数据库

    我是新来的mvc 我创建了一个MVC应用程序 我在其中使用过code first方法 现在我有两张桌子Deal and Comment 现在我想添加一个新表Category在数据库和新列中类别ID in Deal table 我如何更新数据
  • Android PICASSO - 图像未加载到 ImageView + 停止发生以下所有语句

    背景 我的 java 文件中有一个 Picasso 语句 它读取 JSON 然后将该数据格式化到屏幕上 问题 读取 JSON 后 Picasso 不会将图像从 URL 加载到 ImageView 而是停止此后发生的所有语句 例如在 Text
  • 从 bmp 中获取平均颜色

    我正在为第二个屏幕开发一个任务栏 类似于displayfusion 但是 我很难从图标中获得正确的平均颜色 例如 Google Chrome 当我将其悬停在主任务栏上时 它的背景会变成黄色 使用我的代码它会变成橙色 红色 现在看起来是这样的