0

我正在为这个应用程序使用 Lumia Imaging SDK 2.0。

基本上我已经为特定的过滤器创建了一个矩形。当用户点击矩形时,该过滤器将应用于它。

但我的问题是:当用户点击其他过滤器时,以前的过滤器不会磨损。我想确保只有当用户双击矩形时才会永久应用过滤器,但是当他单击时,过滤器效果将暂时应用于照片以预览效果。当他选择其他过滤器时,之前的过滤器会磨损。我希望我说清楚了。

这是我正在做的代码:

private async void RecAntiqueFilter_Tapped(object sender, DoubleTappedRoutedEventArgs e)
    {
        var imageStream = new BitmapImageSource(originalBitmap.AsBitmap());
        using (var effect = new FilterEffect(imageStream))
        {
            var filter = new AntiqueFilter();
            effect.Filters = new[] { filter };

            // Render the image to a WriteableBitmap.
            var renderer = new WriteableBitmapRenderer(effect, originalBitmap);
            editedBitmap = await renderer.RenderAsync();
            editedBitmap.Invalidate();
        }

        Image.Source = editedBitmap;
    }

还有一件事,我将如何实现撤消过滤选项?

4

1 回答 1

0

你可以这样做:

 IList<IFilter> filtersList = new List<IFilter>();
 if (filterEffect != null)
            {
                filterEffect.Dispose();
                filterEffect = null;
            }

            filtersList.Remove(cartoonFilter);
            filtersList.Clear();

            filtersList.Add(cartoonFilter);

            writeableBitmapTarget = new WriteableBitmap(imageTarget, null);

....... 并使用 writeableBitmapTarget 作为源

于 2015-10-08T07:35:10.220 回答