1

我对 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<Nokia.Graphics.Imaging.SplitToneRange>

4

1 回答 1

0

您不能创建接口的实例(在您的情况下为 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 的实际作用。

于 2014-01-05T13:30:37.907 回答