[英]Lumia Imaging SDK 3.0 Blending AutoEnhance Effect and other source throw InvalidArgumentException
我正在嘗試將現有圖像與另一個應用了Effect
IImageProvider
混合。 我注意到有一些Effect
會引發InvalidArgumentException,例如Auto Enhance
和Auto Levels
。 許多其他Effect
例如Antique
效果也不會引發此錯誤。
我的代碼:
. . .
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.