示例#1
0
        public static int BaseApiSetDebugVariable(HandleRef handle, string name, string value)
        {
            IntPtr valuePtr = IntPtr.Zero;

            try {
                valuePtr = MarshalHelper.StringToPtr(value, Encoding.UTF8);
                return(Native.BaseApiSetDebugVariable(handle, name, valuePtr));
            } finally {
                if (valuePtr != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(valuePtr);
                }
            }
        }
示例#2
0
        public static string ResultIteratorGetUTF8Text(HandleRef handle, PageIteratorLevel level)
        {
            IntPtr txtHandle = Native.ResultIteratorGetUTF8TextInternal(handle, level);

            if (txtHandle != IntPtr.Zero)
            {
                var result = MarshalHelper.PtrToString(txtHandle, Encoding.UTF8);
                TessApi.Native.DeleteText(txtHandle);
                return(result);
            }
            else
            {
                return(null);
            }
        }
示例#3
0
        public static string BaseAPIGetUTF8Text(HandleRef handle)
        {
            IntPtr txtHandle = Native.BaseAPIGetUTF8TextInternal(handle);

            if (txtHandle != IntPtr.Zero)
            {
                var result = MarshalHelper.PtrToString(txtHandle, Encoding.UTF8);
                TessApi.Native.DeleteText(txtHandle);
                return(result);
            }
            else
            {
                return(null);
            }
        }
示例#4
0
        //Just Copied:
        public static string BaseAPIGetHOCRText2(HandleRef handle, int pageNum)
        {
            IntPtr txtHandle = Native.BaseApiGetHOCRTextInternal(handle, pageNum);

            if (txtHandle != IntPtr.Zero)
            {
                var result = MarshalHelper.PtrToString(txtHandle, Encoding.UTF8);
                TessApi.Native.DeleteText(txtHandle);
                return(xhtmlBeginTag + result + xhtmlEndTag);
            }
            else
            {
                return(null);
            }
        }
示例#5
0
        public static string ResultIteratorGetWordRecognitionLanguage(HandleRef handle)
        {
            IntPtr txtHandle = Native.ResultIteratorGetWordRecognitionLanguageInternal(handle);

            if (txtHandle != IntPtr.Zero)
            {
                var result = MarshalHelper.PtrToString(txtHandle, Encoding.UTF8);
                // txtHandle must not be deleted, see method WordRecognistionLanguage
                // in tesseract/ccmain/ltrresultiterator.h.
                return(result);
            }
            else
            {
                return(null);
            }
        }
示例#6
0
        public static string ResultIteratorGetWordFontAttributes(HandleRef handle,
                                                                 out bool isBold, out bool isItalic, out bool isUnderlined,
                                                                 out bool isMonospace, out bool isSerif, out bool isSmallCaps,
                                                                 out int pointSize, out int fontId)
        {
            int    bold, italic, underlined, monospace, serif, smallCaps;
            IntPtr txtHandle = Native.ResultIteratorGetWordFontAttributesInternal(handle,
                                                                                  out bold, out italic, out underlined,
                                                                                  out monospace, out serif, out smallCaps,
                                                                                  out pointSize, out fontId);

            if (txtHandle != IntPtr.Zero)
            {
                var result = MarshalHelper.PtrToString(txtHandle, Encoding.UTF8);
                // txtHandle must not be deleted, see method WordFontAttributes
                // in tesseract/ccmain/ltrresultiterator.h.
                isBold       = Convert.ToBoolean(bold);
                isItalic     = Convert.ToBoolean(italic);
                isUnderlined = Convert.ToBoolean(underlined);
                isMonospace  = Convert.ToBoolean(monospace);
                isSerif      = Convert.ToBoolean(serif);
                isSmallCaps  = Convert.ToBoolean(smallCaps);
                return(result);
            }
            else
            {
                isBold       = false;
                isItalic     = false;
                isUnderlined = false;
                isMonospace  = false;
                isSerif      = false;
                isSmallCaps  = false;
                pointSize    = 0;
                fontId       = -1;
                return(null);
            }
        }
示例#7
0
        public static string BaseApiGetStringVariable(HandleRef handle, string name)
        {
            var resultHandle = Native.BaseApiGetStringVariableInternal(handle, name);

            return(MarshalHelper.PtrToString(resultHandle, Encoding.UTF8));
        }
 internal static string getLeptonicaVersion()
 {
     return(MarshalHelper.PtrToString(getLeptonicaVersionInternal()));
 }
示例#9
0
        internal static extern IntPtr ChoiceIteratorGetUTF8TextInternal(HandleRef handle);         // Returns internal memory

        internal static string ChoiceIteratorGetUTF8Text(HandleRef handle)
        {
            return(MarshalHelper.PtrToString(ChoiceIteratorGetUTF8TextInternal(handle)));
        }
示例#10
0
 internal static string GetVersion()
 {
     return(MarshalHelper.PtrToString(GetVersionInternal()));            // Do not free as it is a constant on the stack
 }
示例#11
0
 internal static string BaseApiGetStringVariable(HandleRef handle, string name)
 {
     return(MarshalHelper.PtrToString(BaseApiGetStringVariableInternal(handle, name)));           // return string cannot be deleted, it comes from a c_str call.
 }