【问题标题】:Get Dominant Color from Image in UWP C#在 UWP C# 中从图像中获取主色
【发布时间】:2018-06-25 04:03:17
【问题描述】:

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

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

我总是可以使用任何 Web 服务并使用 python 或 node.js 等来完成这项工作,但我想在 UWP 应用程序中本地完成这项工作,而不需要互联网。

感谢任何帮助!

【问题讨论】:

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


    【解决方案1】:

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

    对于每个像素: 转换为 HSL。使用 H 和 S 确定颜色。使用 L 来确定强度。在一个由 H 和 S 索引的二维矩阵中对 a 求和。

    找出矩阵中的最大值。那是你的主色。

    【讨论】:

      【解决方案2】:

      看看这个 repo:ColorThief 和它的 Nuget package。它支持 UWP。您也可以查看this answer 了解更多信息。

      【讨论】:

      • 它可以工作,但它需要异步代码。 var random = RandomAccessStreamReference.CreateFromUri(uri); using (IRandomAccessStream randomAccessStream = await random.OpenReadAsync()) { var decoder = await BitmapDecoder.CreateAsync(randomAccessStream); var colorThief = new ColorThief(); QuantizedColor quantizedColor = await colorThief.GetColor(decoder); }
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 2013-06-04
      • 2013-07-21
      • 1970-01-01
      相关资源
      最近更新 更多