2009-07-02 3 views
1

Я использую элемент управления InkCanvas WPF для захвата подписей в приложении Tablet PC.WPF InkCanvas - как определить, была ли она «подписана»

Одно из моих требований - проверить, действительно ли приложение действительно «подписано». Прямо сейчас я делаю это, проверяя коллекцию Strokes InkCanvas - если есть 0 штрихов, то я знаю, что пользователь не «подписал».

Однако, если пользователь вводит одну косую черту или даже одну точку, это считается штрихом, и мой тест проверки пройдет, даже если подпись недействительна.

Любые идеи о том, как построить лучший тест для этого? Конечно, прецедент для того, что есть и не является допустимой сигнатурой, довольно нечеткий, но я хочу попытаться устранить явно плохие подписи.

Или это просто неразрешимо любым простым способом?

ответ

1

Я знаю, что есть алгоритмы для проверки, является ли сигнатура действительным совпадением для существующей подписи, как и одна из них, обозначенная here. Однако выяснение того, что что-то является сигнатурой, в первую очередь, кажется, намного сложнее.

Материал из Википедии:

О юридических документах, неграмотный подписавший может сделать «знак» (часто «Х», но иногда персонифицированный символ)
...
Несколько культур, чьи языки используют письменные системы, отличные от алфавитов, не разделяют западное понятие подписей как таковое: «подписание» своего имени приводит к письменному произведению, отличному от результата «написания» своего имени стандартным способом. Для этих языков, чтобы писать или подписывать, используются одни и те же персонажи. Три таких примера - китайский, японский и корейский.

В то время как к этому можно подойти, используя Intelligent Character Recognition, я также знаю, что моя подпись редко выглядит так, будто в ней есть символы. Это еще хуже, если я использую один из этих пэдов для пакетов UPS или FedEx. В следующий раз, когда пакет поступит, хотя я попытаюсь подписаться с тире и точкой и посмотреть, разрешает ли это (что, я думаю, это позволит, так как оно уже достаточно близко к этому).

Поскольку подпись может не соответствовать распознаваемым словам или символам, попытка «проверить» ее дальше, чем вы в действительности, может фактически отбросить некоторые действительные подписи. Если по какой-то причине вам все еще нужно знать, есть ли что-то большее, чем точка, взгляните на проверку вместо этого, что подпись заполняет прямоугольник определенного размера. Это все равно может привести к недействительности результатов, которых не должно быть, поэтому, если вы попытаетесь добавить какую-либо проверку, убедитесь, что вы полностью документируете ожидания действительной подписи.

Смежные вопросы