카메라로 사진을 캡처하거나 파일에서 캔버스로로드해야합니다.이 캔버스는 폴더에 저장 한 후 일부 항목을 강조 표시하기 위해 편집해야합니다.UWP : 어떻게 이미지를 InkCanvas에 첨부 할 수 있습니까?
지금에 관해서는 나는이 사용
<Grid x:Name="grid">
<Image Source="/Assets/stainless-images-110606.jpg" x:Name="ImageToEdit" Stretch="Uniform" />
<StackPanel Background="LightGreen" Width="700" Height="700" x:Name="StackPanel">
<InkCanvas x:Name="MyInkCanvas" Width="{Binding Width, ElementName=StackPanel}" Height="{Binding Height, ElementName=StackPanel}"/>
</StackPanel>
<InkToolbar TargetInkCanvas="{x:Bind MyInkCanvas}" Name="inkToolbar"/>
<Button Content="Save" Click="Button_Click" HorizontalAlignment="Right"/>
</Grid>
을 그리고 이것은 내가 XAML에서 전체 물건을 얻는 방법은 다음과 같습니다
public static async Task<IRandomAccessStream> RenderToRandomAccessStream(this UIElement element)
{
RenderTargetBitmap rtb = new RenderTargetBitmap();
await rtb.RenderAsync(element);
var pixelBuffer = await rtb.GetPixelsAsync();
var pixels = pixelBuffer.ToArray();
// Useful for rendering in the correct DPI
var displayInformation = DisplayInformation.GetForCurrentView();
var stream = new InMemoryRandomAccessStream();
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream);
encoder.SetPixelData(BitmapPixelFormat.Bgra8,
BitmapAlphaMode.Premultiplied,
(uint)rtb.PixelWidth,
(uint)rtb.PixelHeight,
displayInformation.RawDpiX,
displayInformation.RawDpiY,
pixels);
await encoder.FlushAsync();
stream.Seek(0);
return stream;
}
난에 이미지 소스를 설정 카메라에서 사진을 캡처 사진을 저장하지만 전체 내용을 저장할 때 사진 만 저장하고 캔버스의 획은 저장하지 않습니다. 내 가정은 어떻게 든 카메라에서받은 스트림을 어떻게 든 inkCanvas에 첨부해야한다는 것입니다. RenderTargetBitmap
클래스의 "XAML 영상과 RenderTargetBitmap 캡처 기능"에 따르면