SDK 시작하기


Selvy Pen SDK for Text는 손글씨의 좌표 (x,y) 값을 입력받아 문자로 인식한 후, 인식한 문자의 유니코드(16bit) 값을 반환해 주는 API를 제공합니다.
낱자, 단어, 문장 단위로 인식이 가능하며, 정자로 쓴 글씨, 흘려서 쓴 글씨, 겹쳐서 쓴 글씨 등 다양한 필체의 글씨를 인식할 수 있습니다

SDK는 헤더 파일과 라이브러리 파일의 모음으로 제공됩니다.
Android, iOS, Windows, Linux 등 거의 모든 플랫폼에서 사용이 가능하며, C/C++, C#, Java 등 다양한 개발언어를 지원합니다

파일 구성


Windows용 SDK는 다음과 같은 파일로 구성되어 있습니다.

Note
파일명과 파일 구성은 플랫폼에 따라 조금씩 다를 수 있습니다.
예를 들어 Linux의 경우 Shared Libary로 제공되며, Library 파일은 libdhwr.so, libdhwr-core.so, libdhwr-base, libdhwr-hwfs.so 로 구성됩니다.
Selvy Pen SDK for Text/
│
├── hdb/
│   ├── ko_KR.hdb
│   ├── en_US.hdb
│   ├── de_DE.hdb
│   ├── es_ES.hdb
│   ├── zh_CN.hdb
│   └── ...
│
├── include/
│   ├── dhwr.h
│   ├── dhwr_define.h
│   ├── dhwr_gesture.h
│   ├── dhwr_ink.h
│   ├── dhwr_result.h
│   └── dhwr_setting.h
│
├── libs/
│   └── win32_x86/
│       ├── libdhwr.dll
│       ├── libdhwr.lib
│       └── libdhwr-hwfs.dll
│
├── license_key/
│   └── license.key
│
└── release_notes.md
  • hdb/
    인식엔진에서 사용하는 언어별 DB파일 입니다. ko_KR.hdb는 한국어(대한민국), en_US.hdb는 영어(미국) DB 파일입니다.
    파일명은 ISO 639-1의 코드명을 따릅니다.
    hdb 파일의 경로를 설정하는 API인 DHWRSetExternalResourcePath()를 호출 시 hdb 파일이 존재하는 디렉터리의 경로명를 파라미터로 입력합니다.
  • include/
    API명과 enum 값 등이 선언되어 있는 헤더 파일입니다.
    dhwr.h 파일 하나만 include하면 됩니다. (dhwr.h 내에서 나머지 헤더 파일을 include 합니다.)
  • libs/win32_x86/libdhwr.dll, libdhwr.lib
    필기인식 기능을 수행하는 Main 엔진 라이브러리 파일니다.
  • libs/win32_x86/lib-hwfs.dll
    중국어 인식을 위한 라이브러리 파일입니다.
  • license_key/license.key
    Main 엔진을 초기화는 API인 DHWRCreate()를 호출 시 License 파일명이 포함된 경로명을 파라미터로 입력합니다.
    Warning
    라이브러리를 사용하기 위해서는 License 파일이 필요합니다.
    License 파일이 없으면 필기인식 기능은 동작하지 않습니다.
  • release_notes.md
    릴리즈 노트 파일입니다. SDK의 버전별 수정 이력이 정리되어 있습니다.

API 호출 순서


필기인식 기능을 수행하기 위한 API 호출 순서를 설명합니다. 더 자세한 코드는 Example 코드를 참고 하시기 바랍니다.

api flowchart

  • DHWRCreate
    필기인식 엔진을 생성합니다.
  • DHWRSetExternalResourcePath
    hdb 파일이 존재하는 경로를 설정합니다.
  • DHWRSetExternalLibraryPath
    외부 라이브러리 파일(중국어)이 존재하는 경로를 설정합니다.
    중국어를 사용하지 않는다면 호출할 필요는 없습니다.
  • DHWRCreateInkObject
    Ink Object를 생성합니다.
    Ink Ojbect에 필기 좌표 값이 저장됩니다.
  • DHWRCreateSettingObject
    Setting Object를 생성합니다.
    Setting Object에 인식 언어, 인식 방식 등의 설정 값이 저장됩니다.
  • DHWRCreateResultObject
    Result Object를 생성합니다.
    Result Object에 인식된 문자의 정보가 저장됩니다.
  • DHWRSetRecognitionMode
    어떤 글자(낱자/여러 글자/겹쳐 쓴 글자)를 인식할지 설정합니다.
  • DHWRAddLanguage
    인식할 언어와 타입을 설정합니다
    예) 언어: 영어, 타입: 대문자, 소문자 DHWRAddLanguage(setting_obj, DLANG_ENGLISH, (DHWR_TYPE)(DTYPE_UPPERCASE | DTYPE_LOWERCASE))
  • DHWRSetAttribute
    사용할 Setting Object를 지정합니다.
  • DHWRAddPoint
    필기 좌표 값을 입력합니다.
    예) DHWRAddPoint(x, y) DHWRAddPoint(x1, y1) DHWRAddPoint(x2, y2) ...
  • DHWREndStroke
    필기 좌표 값 입력 중 하나의 획이 끝나면(보통 Touch Up 이벤트가 발생 시) 호출해 줍니다.
    예) DHWRAddPoint(x5, y5) ... DHWREndStroke() ... DHWRAddPoint(x6, y6) ...
  • DHWRecognize
    필기 좌표 값 입력이 모두 끝났으면 (필기가 끝났으면) 인식을 실행 합니다.
  • DHWRGetCandidate
    인식된 문자를 얻어 옵니다.
  • DHWRDestroyInkObject
    Ink Object를 소멸시킵니다.
  • DHWRDestroySettingObject
    Setting Object를 소멸시킵니다.
  • DHWRDestroyResultObject
    Result Object를 소멸시킵니다.
  • DHWRClose
    필기인식 엔진를 소멸시킵니다.
    Warning
    DHWRCreate()을 호출하여 생성된 엔진은 더이상 사용하지 않을 경우 반드시 DHWRClose()을 호출하여 소멸시켜야 합니다.