簡體   English   中英

Lumia成像sdk 3模糊效果問題(無法找到該組件。(HRESULT異常:0x88982F50))

[英]Lumia imaging sdk 3 blur effect issue (The component cannot be found. (Exception from HRESULT: 0x88982F50))

我需要渲染一個xaml元素並使用LumiaImageSDK 3應用模糊效果

            var bitmapRended = new RenderTargetBitmap();
            await bitmapRended.RenderAsync(LayoutRoot);

            IBuffer buffer = await bitmapRended.GetPixelsAsync();

            var target = new WriteableBitmap(bitmapRended.PixelWidth, bitmapRended.PixelHeight);
            var source = new BufferImageSource(buffer);
            var blur = new BlurEffect(source, 128);

            var renderer = new WriteableBitmapRenderer(blur, target);

            var result = await renderer.RenderAsync();

            var imgBrush = new ImageBrush();
            imgBrush.ImageSource = result;

            Menu.Background = imgBrush;

但是當我運行代碼時,我收到此錯誤:

The component cannot be found. (Exception from HRESULT: 0x88982F50)

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

我認為這與我將RenderTargetBitmap轉換為IRandomAccessStream的方式有關。

從這行代碼中引發異常: var result = await renderer.RenderAsync();

它認為問題是僵局,但我無法找到解決方案

編輯:代碼已更新

使用Lumia Imaging SDK時遇到了同樣的問題。 我還在檢查這個問題。 但是,要模糊圖像,使用Win2D是另一種選擇。

上面的代碼顯示了如何將XAML UIElement呈現為流或某事物。 然后你可以使用Win2D庫模糊它。 發帖只是談論如何做模糊的東西。

希望能幫助到你。

由於你有一個帶有結果的IBuffer(IBuffer緩沖區),然后跳過所有的緩沖區操作,只需創建一個BufferImageSource。

var target = new WriteableBitmap(bitmapRender.PixelWidth, bitmapRender.PixelHeight);
using (var source = new BufferImageSource(buffer))
using (var blur = new BlurEffect(source , 128))
using (var renderer = new WriteableBitmapRenderer(blur, target))
{
    var result = await renderer.RenderAsync();
}

那說我看不出你寫的代碼有明顯的問題。 我將不得不調查它,但在那之前,你確定流是在開頭嗎? 這是流的常見錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM