47 lines
1.1 KiB
C++
Raw Normal View History

2018-01-26 04:35:47 +01:00
#include <boolean.h>
2018-01-25 12:22:42 -08:00
#include <tesseract/baseapi.h>
#include "tess_get_text.h"
#define ERROR_BUFFER_LENGTH 1000
static tesseract::TessBaseAPI *api;
static char* one_time_return_pointer = NULL;
char tess_last_error[ERROR_BUFFER_LENGTH];
2018-01-26 04:35:47 +01:00
bool tess_init(const char* lang_data_dir, const char* language)
2018-01-25 12:22:42 -08:00
{
2018-01-26 04:35:47 +01:00
api = new tesseract::TessBaseAPI();
2018-01-25 12:22:42 -08:00
2018-01-26 04:35:47 +01:00
snprintf(tess_last_error, ERROR_BUFFER_LENGTH, "No errors!\n");
if (api->Init(lang_data_dir, language))
{
2018-01-26 04:37:53 +01:00
snprintf(tess_last_error, ERROR_BUFFER_LENGTH,
"Could not initialize tesseract.\n");
2018-01-26 04:35:47 +01:00
return false;
}
return true;
2018-01-25 12:22:42 -08:00
}
2018-01-26 04:35:47 +01:00
void tess_deinit(void)
2018-01-25 12:22:42 -08:00
{
2018-01-26 04:35:47 +01:00
if (one_time_return_pointer)
delete [] one_time_return_pointer;
if (api)
api->End();
2018-01-25 12:22:42 -08:00
}
char* tess_get_text(tess_image image)
{
2018-01-26 04:35:47 +01:00
if (one_time_return_pointer)
delete [] one_time_return_pointer;
api->SetImage(image.data, image.width, image.height,
2018-01-26 04:37:53 +01:00
image.bytes_per_pixel, image.width * image.bytes_per_pixel);
2018-01-26 04:35:47 +01:00
one_time_return_pointer = api->GetUTF8Text();
return one_time_return_pointer;
}