【问题标题】:How to Create SplitToneRange for SplitToneFilter in Nokia Imaging SDK如何在 Nokia Imaging SDK 中为 SplitToneFilter 创建 SplitToneRange
【发布时间】:2014-12-19 16:08:32
【问题描述】:

我对 SplitToneFilter 所需的 SplitToneRange IList 有点困惑。

SplitToneFilter(IList<SplitToneRange> splitToneRanges)

如何创建这样的范围?我做了以下,但我不确定我是否正确地处理了这个。

Windows.UI.Color c = new Windows.UI.Color();
c.R = (byte)155;
c.G = (byte)155;
c.B = (byte)155;
SplitToneRange r = new SplitToneRange(20, 80, c);
SplitToneRange r1 = new SplitToneRange(140, 200, c);

这是一个正确的开始吗?如果是这样,我如何将其添加到 SplitToneRange(..)。

我尝试创建一个 IList

IList<SplitToneRange> l = new IList<SplitToneRange>(); //error

但我收到以下错误

无法创建抽象类或接口的实例 System.Collections.Generic.IList&lt;Nokia.Graphics.Imaging.SplitToneRange&gt;

【问题讨论】:

    标签: c# windows-phone-8 nokia-imaging-sdk lumia-imaging-sdk


    【解决方案1】:

    您不能创建接口的实例(在您的情况下为 IList)。这不是 Imaging SDK 的限制,而是 C# 的工作方式。只需创建一个普通列表:

    List<SplitToneRange> list = new List<SplitToneRange>();
    

    然后在其中添加一些 SplitToneRanges:

    list.Add(new SplitToneRange(20, 80, Windows.UI.Color.FromArgb(255, 155, 155, 155)));
    list.Add(new SplitToneRange(140, 200, Windows.UI.Color.FromArgb(255, 30, 80, 200)));
    
    SplitToneFilter filter = new SplitToneFilter(list);
    

    您的代码的其余部分看起来是正确的(没有尝试过),但通常对于不同的 SplitToneRanges,您会有不同的颜色,如我的示例所示。尝试使用这些值来感受 SplitToneFilter 的实际作用。

    【讨论】:

    • 我必须像我原来的帖子一样创建Windows.UI.Color,因为它在创建时不接受字节值。但总而言之,您的解决方案有效。谢谢!现在我只需要找到一些好的值来输入来创建一个好看的过滤器。有什么建议,或者可能是其他人样本的链接?
    • @Matthew 好吧,即使在构造函数中,您也可以将值转换为字节。
    • 我想在 WP8 的版本中,构造函数不带参数。
    • @Matthew 你是对的。您应该使用 Color.FromArgb 方法。我更新了我的示例以反映这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多