www.pudn.com > VOBSUB.rar > ocrdll.h
#include#define SETOFIMG void #define IMG void enum {OM_TEXT, OM_RICHTEXT}; enum {OT_TEXT, OT_PROP, OT_ITAL, OT_UNDS, OT_SIZE=5, OT_HILT, OT_ENDL, OT_ENDZ, OT_BITM}; typedef void (*OCRErrorHandler)(void); // parameters unknown typedef void (*OCROutputHandler)(int event, int param); typedef int (*OCRProgressHandler)(int percent); typedef void (*OCRWarningHandler)(void); // parameters unknown typedef int (*AddDIBProc)(SETOFIMG * set, HGLOBAL hDib); typedef int (*AddImageProc)(SETOFIMG * set, IMG * image); typedef SETOFIMG * (*CreateMultipleImgProc)(); typedef void (*DelImageProc)(SETOFIMG * set, int index); typedef int (*DeskewImgProc)(IMG * img); typedef IMG * (*DIBToIMGProc)(HGLOBAL hDib); typedef int (*EraseBlackBordersImgProc)(IMG * img); typedef IMG * (*ExtractImgAreaProc)(IMG * img, int x, int y, int w, int h); typedef void (*FreeImgProc)(IMG * img); typedef void (*FreeMultipleImgProc)(SETOFIMG * set); typedef IMG * (*GetImageProc)(const SETOFIMG * set, int index); typedef unsigned char * (*GetImgBitmapProc)(const IMG * img); typedef LPBITMAPINFO (*GetImgBitmapInfoProc)(const IMG * img); typedef int (*GetImgBitmapSizeProc)(const IMG * img); typedef void (*GetImgResProc)(const IMG * img, int * pw, int * ph); typedef void (*GetImgSizeProc)(const IMG * img, int * pw, int * ph); typedef int (*GetNbImagesProc)(const SETOFIMG * set); typedef IMG * (*HalfSizeImgProc)(IMG * img); typedef int (*InsertImageProc)(SETOFIMG * set, int index, IMG * image); typedef int (*InvertImgProc)(IMG * img); typedef IMG * (*LoadImgProc)(const char * filename); typedef SETOFIMG * (*LoadMultipleImgProc)(const char * filename); typedef int (*OCRProc)(const IMG * img, int noisy); typedef int (*OCROnAreaProc)(const IMG * img, int noisy); typedef int (*OCROnArea2Proc)(const IMG * img, int noisy, int startprogress, int endprogress); typedef OCRErrorHandler (*OCRSetErrorHandlerProc)(OCRErrorHandler handler); typedef OCROutputHandler (*OCRSetOutputHandlerProc)(OCROutputHandler handler); typedef OCRProgressHandler (*OCRSetProgressHandlerProc)(OCRProgressHandler handler); typedef OCRWarningHandler (*OCRSetWarningHandlerProc)(OCRWarningHandler handler); typedef int (*ReplaceImageProc)(SETOFIMG * set, int index, IMG * image); typedef IMG * (*ResizeImgProc)(IMG * img, int nw, int nh); typedef int (*RotateImgProc)(IMG * img, int angle); typedef int (*SaveImgProc)(const char * filename, const IMG * img); typedef void (*SaveMultipleImgProc)(const char * filename, SETOFIMG * set); typedef int (*ScanAndAddImageProc)(SETOFIMG * set); typedef void (*ScanAutoBrightProc)(int automode); typedef int (*ScanAvailableProc)(void); typedef void (*ScanBrightnessProc)(int brightness); typedef void (*ScanEndProc)(void); typedef IMG * (*ScanImgProc)(void); typedef int (*ScanInitProc)(HWND hWnd); typedef void (*ScanResolutionProc)(int resolution); typedef void (*ScanSelectProc)(HWND hWnd); typedef void (*ScanShowUIProc)(int mode); typedef void (*ScanThresholdProc)(int threshold); typedef void (*SetLanguageProc)(int language, const char* dictDir); typedef void (*SetOutputModeProc)(int mode); typedef void (*SetOutputWindowProc)(HWND hWnd); typedef IMG * (*ShrinkImgProc)(IMG * img, int nw, int nh); struct IOcrDll { int (*AddDIB)(SETOFIMG * set, HGLOBAL hDib); int (*AddImage)(SETOFIMG * set, IMG * image); SETOFIMG * (*CreateMultipleImg)(); void (*DelImage)(SETOFIMG * set, int index); int (*DeskewImg)(IMG * img); IMG * (*DIBToIMG)(HGLOBAL hDib); int (*EraseBlackBordersImg)(IMG * img); IMG * (*ExtractImgArea)(IMG * img, int x, int y, int w, int h); void (*FreeImg)(IMG * img); void (*FreeMultipleImg)(SETOFIMG * set); IMG * (*GetImage)(const SETOFIMG * set, int index); unsigned char * (*GetImgBitmap)(const IMG * img); LPBITMAPINFO (*GetImgBitmapInfo)(const IMG * img); int (*GetImgBitmapSize)(const IMG * img); void (*GetImgRes)(const IMG * img, int * pw, int * ph); void (*GetImgSize)(const IMG * img, int * pw, int * ph); int (*GetNbImages)(const SETOFIMG * set); IMG * (*HalfSizeImg)(IMG * img); int (*InsertImage)(SETOFIMG * set, int index, IMG * image); int (*InvertImg)(IMG * img); IMG * (*LoadImg)(const char * filename); SETOFIMG * (*LoadMultipleImg)(const char * filename); int (*OCR)(const IMG * img, int noisy); int (*OCROnArea)(const IMG * img, int noisy); int (*OCROnArea2)(const IMG * img, int noisy, int startprogress, int endprogress); OCRErrorHandler (*OCRSetErrorHandler)(OCRErrorHandler handler); OCROutputHandler (*OCRSetOutputHandler)(OCROutputHandler handler); OCRProgressHandler (*OCRSetProgressHandler)(OCRProgressHandler handler); OCRWarningHandler (*OCRSetWarningHandler)(OCRWarningHandler handler); int (*ReplaceImage)(SETOFIMG * set, int index, IMG * image); IMG * (*ResizeImg)(IMG * img, int nw, int nh); int (*RotateImg)(IMG * img, int angle); int (*SaveImg)(const char * filename, const IMG * img); void (*SaveMultipleImg)(const char * filename, SETOFIMG * set); int (*ScanAndAddImage)(SETOFIMG * set); void (*ScanAutoBright)(int automode); int (*ScanAvailable)(void); void (*ScanBrightness)(int brightness); void (*ScanEnd)(void); IMG * (*ScanImg)(void); int (*ScanInit)(HWND hWnd); void (*ScanResolution)(int resolution); void (*ScanSelect)(HWND hWnd); void (*ScanShowUI)(int mode); void (*ScanThreshold)(int threshold); void (*SetLanguage)(int language, const char* dictDir); void (*SetOutputMode)(int mode); void (*SetOutputWindow)(HWND hWnd); IMG * (*ShrinkImg)(IMG * img, int nw, int nh); }; class COcrDll : public IOcrDll { HMODULE m_hOcrDll; public: COcrDll() : m_hOcrDll(NULL) {Init();} ~COcrDll() {DeInit();} bool IsValid() {return(!!m_hOcrDll);} bool Init(); void DeInit(); };