WindowsインクをUWPアプリケーションに組み込み、Windows Ink tutorial appに、描画されたストロークを(GIF/ISFではなく)PNG画像として保存するように修正しました。Windowsインクを透明なPNG画像として保存します。
ので、XAMLビューがWindows.UI.Xaml.Controls.InkToolbar
とWindows.UI.Xaml.Controls.InkCanvas
を含み、そして私はキャンバス上のストロークを描き、次のコードを介して画像ファイルとして保存することができるよ:
IReadOnlyList<InkStroke> currentStrokes = inkCanvas.InkPresenter.StrokeContainer.GetStrokes();
if (currentStrokes.Count > 0)
{
StorageFile file;
// Using a file picker to identify the target file -> omitted this part
if (file != null)
{
CanvasDevice device = CanvasDevice.GetSharedDevice();
CanvasRenderTarget renderTarget = new CanvasRenderTarget(device, (int)inkCanvas.ActualWidth, (int)inkCanvas.ActualHeight, 96);
using (var ds = renderTarget.CreateDrawingSession())
{
ds.Clear(Colors.White);
ds.DrawInk(currentStrokes);
}
using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite))
await renderTarget.SaveAsync(fileStream, CanvasBitmapFileFormat.Png, 1f);
}
}
すべてがとてもうまく動作します遠い今、私は透明な背景を持つ画像を保存すると、次の行を変更したい:
ds.Clear(Colors.Transparent);
この場合であっても、ファイルが保存され、背景が透明であり、ボールペン、鉛筆ストロークだけでなく、ストロークは正しくレンダリングされますが、画像結果にはハイライターツールで描画されたストロークは含まれません。
この場合、これらのストロークが省略される理由を誰かが説明できますか?何とか透明な背景上で蛍光灯のストロークをレンダリングすることは可能ですか?
ありがとう、素敵な回避策! – andreask