【发布时间】:2017-11-14 12:09:54
【问题描述】:
早上好 StackOverflow,
我今天带着一个让我慢慢发疯的场景来找你。我希望你能帮助我解决这个问题,因为我确信这一定是可能的,但我自己无法解决。
我的问题是我目前正在开发两个不同的应用程序。第一个是用于为内部邮件系统递送包裹的 UWP 应用程序。这里的想法是,在收到包裹后,该人将使用 InkCanvas 签名对应用程序进行签名。然后应该将其作为字节数组保存到数据库中,然后作为常规的旧图像文件重新加载到 WinForm 或 WebForm 应用程序(我目前正在使用 WinForm 应用程序)中。但是,我完全坚持在从 UWP 获得的 WriteableBitmap 和我需要在 WinForms 中加载的常规位图之间进行转换。有什么想法吗?
这是我目前正在做的事情:
保存 UWP 图像:
private byte[] SaveImage()
{
var canvasStrokes = SignatureCanvas.InkPresenter.StrokeContainer.GetStrokes();
if (canvasStrokes.Count > 0)
{
var width = (int) SignatureCanvas.ActualWidth;
var height = (int) SignatureCanvas.ActualHeight;
var device = CanvasDevice.GetSharedDevice();
var renderTarget = new CanvasRenderTarget(device, width, height, 96);
using (var drawingSession = renderTarget.CreateDrawingSession())
{
drawingSession.Clear(Colors.White);
drawingSession.DrawInk(SignatureCanvas.InkPresenter.StrokeContainer.GetStrokes());
}
return renderTarget.GetPixelBytes();
}
return null;
}
然后我将字节保存到数据库中,并在 WinForms 应用程序中从数据库中提取它们......所以我在这里犯了一些愚蠢的错误吗?我是否以错误的格式阅读签名?还是我需要做更多的事情来将格式从一种转换为另一种?
我很困惑,在从 StackOverflow 页面尝试了许多不同的结果之后,我不知道自己做错了什么。
任何帮助都会很棒!对不起,如果我做了一些愚蠢的事情。
【问题讨论】: