Effect
이 적용된 다른 IImageProvider
과 기존 이미지를 혼합하려고합니다. 나는 Auto Enhance
과 Auto Levels
과 같이 InvalidArgumentException을 throw하는 여러 개의 Effect
이 있음을 확인했습니다. Antique
효과와 같이 많은 다른 Effect
이이 오류를 발생시키지 않습니다.Lumia 이미징 SDK 3.0 혼합 자동 노출 효과 및 기타 소스 throw InvalidArgumentException
내 코드 :
는 오류가Bitmap bitmap = await bitmapRenderer.RenderAsync();
에서 발생
. . .
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);
. . .
아마도 나는 imagesize이나 뭐 같은 몇 가지 매개 변수를 설정해야하지만 알아낼 수 없습니다 내가 오류 메시지에서 누락되었습니다. 몇 가지 오버로드를 사용해 보았지만 여전히 문제가 없습니다. 어떤 아이디어?
코드를 테스트 한 결과 문제가 재현되지 않습니다 ... 자세한 정보를 제공해 주시겠습니까? 아니면 샘플을 제공해 주시겠습니까? –
안녕하세요 @Grace Feng. Lumia Imaging SDK GitHub의 EditShowcase 샘플을 사용하고 있습니다. 나는 IImageProvider를 사용하여 effectBackground를 얻었습니다. effectBackground = (SelectedEffect.GetEffectAsync (imageProcessorRenderer.M_Source, imageProcessorRenderer.M_SourceSize, imageProcessorRenderer.RenderSize)). 결과;'반환 값으로 인해 블렌딩 프로세스에서 문제가 발생한다고 생각합니다. 처음에 SoftwareBitmap에 렌더링 한 다음 오류를 혼합했기 때문에 오류가 발생하지 않았습니다. – PutraKg
예, 'effectBackground'의 코드를 게시하지 않았기 때문에 먼저 'SoftwareBitmap'에 렌더링했습니다. 그 이유는 문제를 재현 할 수없는 이유입니다. 나는이 경우에 파기를 계속할 것이다. –