パターン画像の取得
ユーザ辞書の現在のシーク位置のパターン画像を取得する
int mgetpattern(UINT32& recordsize,char* record);
入力
UINT32& recordsize; recordバッファのサイズ
UINT32はunsigned int
char* record; レコードを取得するバッファ
出力
UINT32& recordsize; 取得したレコードのサイズ
返り値
1.....取得できた
0.....見つかっていない
負....BUFFER_OVERFLOW
パターンのサイズがrecordsizeを越えた。
この場合は実際のレコードサイズが
recordsizeに代入されて返る。
48×48ピクセルがNGKOCRの正規化サイズとなっている。画像は1ピクセル1ビットなので、48×48/8 = 288バイトのバッファが必要となる。パターン画像のサイズはREG_FONT_SIZEとしてocrdef.hに定義されている。
例
#include "ocrdef.h"
#include "ocrco.h"
#include "cjocrstock.h"
#include "cjocrdict98.h"
#include "errcode.h"
...
....
CJocrDict* pjocrdict = new CJocrDict;
pjocrdict->msetsystemdict("c:\\dic\\feature\\system");
pjocrdict->msetsystemdict("c:\\dic\\feature\\systemfat");
pjocrdict->msetuserdict("c:\\dic\\feature\\user");
int ret = pjocrdict->mloaddict();
if(ret < 0) {
printf("エラー");
}
ret = pjocrdict->mseekhead();
if(ret < 0) {
printf("エラー");
}
else if(ret == 0) {
printf("ユーザ辞書にレコードがありません");
}
else {
UINT32 recordsize = REG_FONT_SIZE; recordバッファのサイズ
char record[KEYSIZE_MAX]; レコードを取得するバッファ
ret = pjocrdict->mgetpattern(recordsize,record);
if(ret < 0) {
printf("エラー");
}
else {
// recordに48×48ピクセルのパターンが入っている
}
}
delete pjocrdict;