Я пытаюсь реализовать библиотеку jSignature в своем приложении, но не могу заставить ее работать, реальная проблема - попытка воссоздать исходное изображение из текста base30. Чтобы сделать это, я рисую что-то в их demo , беру текст base30 и вставляю его в мое приложение, но сгенерированное изображение не имеет ничего общего с оригинальным. Код моего примера приложения:
private void BtnConvertToSVG_Click(object sender, EventArgs e)
{
convertFromBase30();
}
private void convertFromBase30()
{
try
{
jSignature.Tools.Base30Converter Base30 = new jSignature.Tools.Base30Converter();
String base30Text = tbBase30Text.Text.ToString();
int[][][] arrBase30 = Base30.Base30ToNative(base30Text);
String strSVG = jSignature.Tools.SVGConverter.ToSVG(arrBase30);
tbSVG.Text = strSVG;
MemoryStream s = new MemoryStream(Encoding.ASCII.GetBytes(strSVG));
SvgDocument mySVG = SvgDocument.Open<SvgDocument>(s, null);
var tempStream = new System.IO.MemoryStream();
mySVG.Draw().Save(tempStream, System.Drawing.Imaging.ImageFormat.Png);
System.Drawing.Image img = System.Drawing.Image.FromStream(tempStream);
pbImage.Image = img;
}
catch (Exception ex)
{
MessageBox.Show(String.Format("{0}", ex.Message));
}
}
Это приложение Windows Forms с двумя TextBox:
- tbBase30Text: здесь я представляю текст base30
- tbSVG: где приложение пишет код изображения SVG
Кнопка (btnConvertToSVG) и PictureBox, где я печатаю сгенерированное изображение. Он использует библиотеки , включенные в проект jSignature
Если я нарисую ТАКОЕ изображение в их демонстрации, это даст мне следующий результат
Вставка кода base30 в мое приложение дает мне следующий результат:
Я не понимаю, почему, но единственная общая черта между обеими сигнатурами - это количество строк.
Есть несколько вилок этой библиотеки, brinley 's (последнее обновление) и willowsystems , которые я пробовал безуспешно.