Panel과 같은 FrameworkElement를 이미지 (Nokia Image SDK 사용)로 사용하고 싶습니다. 이미지가 아니라 FrameworkElement에 효과를 적용하고 싶습니다.파일로 저장하지 않고 FrameworkElement를 스트림으로 변환
FrameworkElement를 쓰기 가능 비트 맵으로 사용하고 FilterEffect 용 스트림으로 사용하려고 애 쓰고 있습니다. 여기
내가 무엇을했는지 있습니다 :
는private async void testCartoon_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
//the panel I want as an Image
var rootElement = ContentPanel as FrameworkElement;
WriteableBitmap myWB = new WriteableBitmap(rootElement,null);
byte[] bytes = myWB.ToByteArray();
MemoryStream stream = new MemoryStream();
await stream.WriteAsync(myWB.ToByteArray(),0,bytes.Count());
stream.Seek(0, SeekOrigin.Begin);
var backgroundSource = new StreamImageSource(stream);
var filterEffect = new FilterEffect(backgroundSource);
CartoonFilter cartoonFilter = new CartoonFilter();
filterEffect.Filters = new[] { cartoonFilter };
var renderer = new WriteableBitmapRenderer(filterEffect, _cartoonImageBitmap);
_cartoonImageBitmap = await renderer.RenderAsync();
ImageCartoon.Source = _cartoonImageBitmap;
}
CartoonFilter는 NokiaImagingSDK 필터 중 하나입니다. XAML에서
_cartoonImageBitmap = new WriteableBitmap((int)ImageCartoon.Width, (int)ImageCartoon.Height);
및 ImageCartoon :
내가 정의 내이 같은 _cartoonImageBitmap 라인
에서 "값이 예상 범위를 벗어"<Image x:Name="ImageCartoon" Width="456" Height="240" Grid.Row="1" ></Image>
나는 예외를 얻을
_cartoonImageBitmap = await renderer.RenderAsync();
이유에 대해 알고 싶습니까?
FrameworkElement에서 스트림을 가져 오는 더 좋은 방법이 있습니까?
(필자는 writeableBitmap을 읽기 전에 filestorage에 저장할 수 있지만 성능을 높이려면 이미지 저장을 피하고 싶습니다.)
도움을 주셔서 감사합니다.
해결책을 찾은 것을 기쁘게 생각합니다! –