从UWP C#中的图像获取主色

时间:2018-06-25 04:03:17

标签: c# bitmap uwp windows-10-universal

基本上,我有一个UWP应用,允许用户打开图像文件(.jpg,.jpeg,.png),我需要从该图像中检测主要颜色。

我使用System.Drawing找到了使用GDI +的解决方案,但这在UWP中不可用。我在Win2D中找不到任何类似的参考。那么有没有办法从直方图中获取主色?

我始终可以使用任何Web服务,并使用python或node.js等完成此操作,但我想在UWP应用程序中本机完成此操作,而无需互联网。

任何帮助表示感谢!

2 个答案:

答案 0 :(得分:3)

我们通过以下方式做到了:

对于每个像素: 转换为HSL。使用H和S确定颜色。使用L确定强度。在由H和S索引的2D矩阵中将所有a相加。

在矩阵中找到最大值。那是你的主色调。

答案 1 :(得分:0)

看看这个仓库:ColorThief及其Nuget package。它支持UWP。您也可以检查this answer了解更多信息。