【问题标题】:How to Use Color Thief With UWP如何在 UWP 中使用颜色小偷
【发布时间】:2017-03-16 16:16:23
【问题描述】:

我从互联网加载图像源,我需要这些图像的主色。比如this图片,然后找到颜色小偷但我看不懂。

我使用这种方法,但我认为它是错误的。

BitmapDecoder BMD = new BitmapDecoder("https://yt3.ggpht.com/-cYK4gMKhvV0/AAAAAAAAAAI/AAAAAAAAAAA/8znlvBw-Wos/s100-c-k-no-mo-rj-c0xffffff/photo.jpg");
var colorThief = new ColorThief();
await colorThief.GetColor(BMD);

我该怎么做?

【问题讨论】:

    标签: c# colors uwp color-thief


    【解决方案1】:

    ColorThiefGetColor方法需要BitmapDecoder参数是对的。但是BitmapDecode 不是通过您尝试的方式创建的。 BitmapDecoder可以通过IRandomAccessStream按照CreateAsync()方法创建,不能直接通过Uri创建。所以你首先需要一个RandomAccessStream 对象。这可以通过RandomAccessStreamReference.CreateFromUri(Uri) 创建一个RandomAccessStreamReference 来完成,然后打开并阅读它。使用 ColorThief 的完整演示如下,您可以参考:

    Uri imageUri = new Uri("https://yt3.ggpht.com/-cYK4gMKhvV0/AAAAAAAAAAI/AAAAAAAAAAA/8znlvBw-Wos/s100-c-k-no-mo-rj-c0xffffff/photo.jpg");
    RandomAccessStreamReference random = RandomAccessStreamReference.CreateFromUri(imageUri);
    using (IRandomAccessStream stream = await random.OpenReadAsync())   
    {
        //Create a decoder for the image
        var decoder = await BitmapDecoder.CreateAsync(stream);
        var colorThief = new ColorThief();
        var color = await colorThief.GetColor(decoder);       
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      相关资源
      最近更新 更多