0

我正在爲此應用程序使用Lumia Imaging SDK 2.0。在應用照片濾鏡之前預覽c#wp8

基本上我爲特定的過濾器創建了一個矩形。當用戶點擊矩形時,該過濾器將應用於它。

但我的問題是:當用戶點擊其他過濾器時,先前的過濾器不會磨損。我想確保過濾器只在用戶雙擊矩形時永久應用,但當他單擊時,濾鏡效果將暫時應用於照片以預覽效果。當他選擇其他過濾器時,先前的過濾器會磨損。我希望我明確自己。

下面是我在做什麼的代碼:

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; 
    } 

還有一件事,我將如何落實撤消過濾選項?

回答

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源