JNIEXPORT jstring JNICALL Java_com_sxc_homekeytestforndk_Zinnia_initData(JNIEnv* env, jclass thiz,jstring data)
{ 
	int len = (*env)->GetStringLength(env, data);
	char outbuf [len];
	(*env)->GetStringUTFRegion(env, data, 0, len, outbuf);
    zinnia_recognizer_t *recognizer = zinnia_recognizer_new();
    zinnia_character_t  *character  = zinnia_character_new();
    if (!zinnia_recognizer_open(recognizer, "/data/data/com.sxc.homekeytestforndk/files/test.model")) {
     return (*env)->NewStringUTF(env, "can not found the model file");
	}
	if (!zinnia_character_parse(character, outbuf)) {
    return (*env)->NewStringUTF(env, "can not parse");
  	}
  	
	zinnia_result_t *result = zinnia_recognizer_classify(recognizer, character, 10);
    size_t i; 
    if (!result) {
       return (*env)->NewStringUTF(env, "3error");
    }
    int length = zinnia_result_size(result);
	char buf[3*length];
	memset(buf, 0, 3*length);
    for (i = 0; i < length; ++i)
 	{
 	 	strcpy(&buf[3*i],zinnia_result_value(result,i));
    }
   // strcpy(&buf[0],zinnia_result_value(result,0));
   // strcpy(&buf[3],zinnia_result_value(result,1));
	zinnia_result_destroy(result);
	zinnia_character_destroy(character);
	zinnia_recognizer_destroy(recognizer);
    return (*env)->NewStringUTF(env,buf);
}
static void ibus_handwrite_recog_zinnia_destory(GObject*obj)
{
	IbusHandwriteRecogZinnia * thisobj = IBUS_HANDWRITE_RECOG_ZINNIA(obj);

	zinnia_recognizer_destroy(thisobj->recognizer);

	IBUS_HANDWRITE_RECOG_ZINNIA_GET_CLASS(obj)->parentdestroy(obj);
}
Exemple #3
0
int main(int argc, char **argv) {
  size_t i;
  zinnia_recognizer_t *recognizer;
  zinnia_character_t *character;
  zinnia_result_t *result;

  recognizer = zinnia_recognizer_new();

  if (!zinnia_recognizer_open(recognizer, "/usr/local/lib/zinnia/model/tomoe/handwriting-ja.model")) {
    fprintf(stderr, "ERROR: %s\n", zinnia_recognizer_strerror(recognizer));
    return -1;
  }

  zinnia_character_t  *character  = zinnia_character_new();
  zinnia_character_clear(character);
  zinnia_character_set_width(character, 300);
  zinnia_character_set_height(character, 300);
  zinnia_character_add(character, 0, 51, 29);
  zinnia_character_add(character, 0, 117, 41);
  zinnia_character_add(character, 1, 99, 65);
  zinnia_character_add(character, 1, 219, 77);
  zinnia_character_add(character, 2, 27, 131);
  zinnia_character_add(character, 2, 261, 131);
  zinnia_character_add(character, 3, 129, 17);
  zinnia_character_add(character, 3, 57, 203);
  zinnia_character_add(character, 4, 111, 71);
  zinnia_character_add(character, 4, 219, 173);
  zinnia_character_add(character, 5, 81, 161);
  zinnia_character_add(character, 5, 93, 281);
  zinnia_character_add(character, 6, 99, 167);
  zinnia_character_add(character, 6, 207, 167);
  zinnia_character_add(character, 6, 189, 245);
  zinnia_character_add(character, 7, 99, 227);
  zinnia_character_add(character, 7, 189, 227);
  zinnia_character_add(character, 8, 111, 257);
  zinnia_character_add(character, 8, 189, 245);

  result = zinnia_recognizer_classify(recognizer, character, 10);
  if (result == NULL) {
    fprintf(stderr, "%s\n", zinnia_recognizer_strerror(recognizer));
    return -1;
  }


  for (i = 0; i < zinnia_result_size(result); ++i) {
    fprintf(stdout, "%s\t%f\n",
            zinnia_result_value(result, i),
            zinnia_result_score(result, i));
  }

  zinnia_result_destroy(result);
  zinnia_character_destroy(character);
  zinnia_recognizer_destroy(recognizer);

  return 0;
}
/*============================================================================*/
ChandWriter::~ChandWriter()
{
	close();
#ifdef USE_ZINNIA
	if ( Cgraphics::m_defaults.handwriting_detection_enabled)
	{
		zinnia_character_destroy( m_character);
		zinnia_recognizer_destroy( m_recognizer);
	}
#endif
}
int handwritor::destroy (void) {
	if (destroyed) {
		return -1;
	}

	if (this->candidate_layout) {
		QHBoxLayout * d = this->candidate_layout;
		this->candidate_layout = NULL;
		delete d;
	}

	if (this->option_layout) {
		QVBoxLayout * d = this->option_layout;
		this->option_layout = NULL;
		delete d;
	}

	if (this->writor_layout) {
		QHBoxLayout * d = this->writor_layout;
		this->writor_layout = NULL;
		delete d;
	}

	if (this->master_layout) {
		QVBoxLayout * d = this->master_layout;
		this->master_layout = NULL;
		delete d;
	}

	if (this->recognizer) {
		zinnia_recognizer_t * d = this->recognizer;
		this->recognizer = NULL;
		(void)zinnia_recognizer_close(d);
		(void)zinnia_recognizer_destroy(d);
	}

	this->destroyed = true;
	return 0;
} /* handwritor::destroy */
/*
 * Class:     com_key_handwrite_Zinnia
 * Method:    zinnia_recognizer_destroy
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_com_key_handwrite_Zinnia_zinnia_1recognizer_1destroy
(JNIEnv *env, jobject jobj, jlong recognizer)
{
    zinnia_recognizer_t* p = reinterpret_cast<zinnia_recognizer_t*>(recognizer);
    zinnia_recognizer_destroy(p);
}
Exemple #7
0
void ZinniaDestroy(void* ud) {
	Zinnia* zn = (Zinnia*) ud;
	zinnia_result_destroy(zn->result);
	zinnia_recognizer_destroy(zn->recog);
	free(zn->candidates);
}