Доброе утро StackOverflow,
Сегодня я пришел к вам со сценарием, который медленно сводит меня с ума. Я надеюсь, что вы можете помочь мне с этим, так как я уверен, что это должно быть возможно, но я не могу решить это сам.
Моя проблема в том, что в настоящее время я работаю над двумя разными приложениями. Первое — это приложение UWP для доставки пакетов для внутренней почтовой системы. Идея здесь в том, что при получении пакета человек подпишет приложение, используя подпись InkCanvas. Затем это должно быть сохранено в базе данных в виде массива байтов, а затем перезагружено либо в приложении WinForm, либо в приложении WebForm (сначала я делаю приложение WinForm) как обычный старый файл изображения. Однако я абсолютно застрял на преобразовании между WriteableBitmap, который я получаю от UWP, и обычным Bitmap, который мне нужно загрузить в 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, я не знаю, что делаю неправильно.
Любая помощь будет потрясающей! И извините, если я сделал что-то глупое.