簡體   English   中英

Lumia Imaging SDK 3.0混合自動增強效果和其他源拋出InvalidArgumentException

[英]Lumia Imaging SDK 3.0 Blending AutoEnhance Effect and other source throw InvalidArgumentException

我正在嘗試將現有圖像與另一個應用了Effect IImageProvider混合。 我注意到有一些Effect會引發InvalidArgumentException,例如Auto EnhanceAuto Levels 許多其他Effect例如Antique效果也不會引發此錯誤。

無題1

我的代碼:

    . . .
SoftwareBitmapImageSource streamTextBitmapForeground = new SoftwareBitmapImageSource(normalizedTextSoftwareBitmap);

//using (SharpnessEffect sharpenText = new SharpnessEffect(streamTextBitmapForeground, SettingsPart.SharpnessLevel))
using (BlendEffect blendEffect = new BlendEffect(effectBackground, streamTextBitmapForeground, BlendFunction.Normal, 1.0f))
using (BitmapRenderer bitmapRenderer = new BitmapRenderer(blendEffect))
{

    Bitmap bitmap = await bitmapRenderer.RenderAsync();
    byte[] pixelBuffer = bitmap.Buffers[0].Buffer.ToArray();

    using (var stream = new InMemoryRandomAccessStream())
    {
        var pngEncoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream).AsTask().ConfigureAwait(false);

        pngEncoder.SetPixelData(BitmapPixelFormat.Bgra8,
            BitmapAlphaMode.Straight,
            (uint)bitmap.Dimensions.Width,
            (uint)bitmap.Dimensions.Height,
            displayInformation.LogicalDpi,
            displayInformation.LogicalDpi,
            pixelBuffer);

        await pngEncoder.FlushAsync().AsTask().ConfigureAwait(false);

        . . .

Bitmap bitmap = await bitmapRenderer.RenderAsync();引發錯誤Bitmap bitmap = await bitmapRenderer.RenderAsync();

也許我需要設置一些參數,例如imagesize或其他參數,但是我無法弄清錯誤消息中缺少的內容。 我試過使用幾個重載,但仍然沒有成功。 有任何想法嗎?

感謝您報告此問題。

正如DavidBožjak提到的那樣,GPU處理存在一些已知問題,您可以嘗試將RenderOptions設置為僅CPU。

using (BitmapRenderer bitmapRender = new BitmapRenderer(blendeffect))
{
          bitmapRender.RenderOptions = RenderOptions.Cpu;
          Bitmap bitmap = await bitmapRender.RenderAsync();
}

在Win10 14393 PC上進行了驗證。

暫無
暫無

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

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