예제 #1
0
 public ElementProperties(Orientation orientation, TextLineOrder textLineOrder, WritingDirection writingDirection, float deskewAngle)
 {
     this.orientation      = orientation;
     this.textLineOrder    = textLineOrder;
     this.writingDirection = writingDirection;
     this.deskewAngle      = deskewAngle;
 }
 public ElementProperties(Orientation orientation, TextLineOrder textLineOrder, WritingDirection writingDirection, float deskewAngle)
 {
     this.orientation = orientation;
     this.textLineOrder = textLineOrder;
     this.writingDirection = writingDirection;
     this.deskewAngle = deskewAngle;
 }
예제 #3
0
        /// <summary>
        /// 中心座標を設定する
        /// </summary>
        private void SetCenterPosition()
        {
            WritingDirection direction = WritingDirection.Horizontal;
            Vector2DF        size      = Font.CalcTextureSize(Text, direction).To2DF();

            CenterPosition = size * CenteringPosition;
        }
예제 #4
0
 /// <summary>
 /// 各要素の設定を行う
 /// </summary>
 /// <returns>C#による各要素の設定</returns>
 public override string ToCSharp() =>
 $"new UIText({(Mode)}, {CSharpCodeProvider.FromString(Name)})\n" +
 "{\n" +
 $"    IsClickable = {CSharpCodeProvider.FromBoolean(IsClickable)},\n" +
 $"    Color = {CSharpCodeProvider.FromColor(Color)},\n" +
 $"    Position = {CSharpCodeProvider.FromVector2DF(Position)},\n" +
 $"    CenterPosition = {CSharpCodeProvider.FromVector2DF(CenterPosition)},\n" +
 $"    Scale = {CSharpCodeProvider.FromVector2DF(UIObject.Scale)},\n" +
 $"    DrawingPriority = {DrawingPriority},\n" +
 $"    WritingDirection = WritingDirection.{WritingDirection.ToString()},\n" +
 $"    Text = {CSharpCodeProvider.FromString(Text)},\n" +
 $"    Font = {CSharpCodeProvider.FromFont(FontInfo)}\n" +
 "}";
예제 #5
0
        public void PageIteratorOrientation(IntPtr handle,
                                            out Orientation orientation,
                                            out WritingDirection writingDirection,
                                            out TextLineOrder textLineOrder,
                                            out float deskew_angle
                                            )
        {
            int intOrientation = 0;
            int intWritingDirection;
            int intTextLineOrder;

            UnsafeTesseractPrimitives.PageIteratorOrientation(handle, out intOrientation, out intWritingDirection, out intTextLineOrder, out deskew_angle);
            orientation      = (Orientation)intOrientation;
            writingDirection = (WritingDirection)intWritingDirection;
            textLineOrder    = (TextLineOrder)intTextLineOrder;
        }
예제 #6
0
 public static extern void GetPageOrientation(IntPtr pageIteratorHandle, out Orientation orientation, out WritingDirection direction, out TextlineOrder order, out float skew);
예제 #7
0
        private void button6_Click_1(object sender, EventArgs e)
        {
            //opcija za iteriranje rec po rec
            consoleTab2.Clear();
            string putanja  = @"../../../tessdata";
            string imageDir = @"../../../staticimages/Arial10.PNG";

            try
            {
                using (var engine = new TesseractEngine(putanja, "eng", EngineMode.Default))
                {
                    using (var img = Pix.LoadFromFile(imageDir))
                    {
                        using (var page = engine.Process(img))
                        {
                            var text = page.GetText();
                            consoleTab2.Text += "Mean confidence: " + String.Format("{0:P}", page.GetMeanConfidence()) + Environment.NewLine;

                            consoleTab2.Text += "Text (GetText): \r\n{0}" + text + Environment.NewLine;
                            consoleTab2.Text += "Text (iterator):" + Environment.NewLine;
                            using (var iter = page.GetIterator())
                            {
                                iter.Begin();

                                do
                                {
                                    do
                                    {
                                        do
                                        {
                                            do
                                            {
                                                if (iter.IsAtBeginningOf(PageIteratorLevel.Block))
                                                {
                                                    consoleTab2.Text += "<BLOCK>" + Environment.NewLine;
                                                }

                                                consoleTab2.Text += iter.GetText(PageIteratorLevel.Word);
                                                consoleTab2.Text += " " + Environment.NewLine;
                                                var                   prop    = iter.GetProperties();
                                                float                 ugao    = prop.DeskewAngle;
                                                WritingDirection      dir     = prop.WritingDirection;
                                                Tesseract.Orientation orieant = prop.Orientation;

                                                consoleTab2.Text += ugao + " " + dir + " " + orieant + Environment.NewLine;

                                                if (iter.IsAtFinalOf(PageIteratorLevel.TextLine, PageIteratorLevel.Word))
                                                {
                                                    consoleTab2.Text += Environment.NewLine;
                                                }
                                            } while (iter.Next(PageIteratorLevel.TextLine, PageIteratorLevel.Word));

                                            if (iter.IsAtFinalOf(PageIteratorLevel.Para, PageIteratorLevel.TextLine))
                                            {
                                                consoleTab2.Text += Environment.NewLine;
                                            }
                                        } while (iter.Next(PageIteratorLevel.Para, PageIteratorLevel.TextLine));
                                    } while (iter.Next(PageIteratorLevel.Block, PageIteratorLevel.Para));
                                } while (iter.Next(PageIteratorLevel.Block));
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.ToString());
                Console.WriteLine("Unexpected Error: " + ex.Message);
                Console.WriteLine("Details: ");
                Console.WriteLine(ex.ToString());
            }
        }
예제 #8
0
 /// <summary>
 /// 通常の描画に加えて文字列を描画する。
 /// </summary>
 /// <param name="pos">描画位置</param>
 /// <param name="color">頂点色</param>
 /// <param name="font">フォント</param>
 /// <param name="text">文字列</param>
 /// <param name="writingDirection">行方向</param>
 /// <param name="alphaBlend">アルファブレンドの種類</param>
 /// <param name="priority">描画の優先順位(大きいほど前面に描画される)</param>
 /// <remarks>
 /// OnDrawAdditionallyの中以外では実行してはいけない。
 /// </remarks>
 protected void DrawTextAdditionally(Vector2DF pos, Color color, Font font, string text, WritingDirection writingDirection, AlphaBlendMode alphaBlend, int priority)
 {
     Layer.DrawTextAdditionally(pos, color, font, text, writingDirection, alphaBlend, priority);
 }
예제 #9
0
 public static extern void PageIteratorOrientation(IntPtr handle, out Orientation orientation, out WritingDirection writing_direction, out TextLineOrder textLineOrder, out float deskew_angle);
예제 #10
0
파일: BaseApi.cs 프로젝트: cormal/tesseract
 public static extern void PageIteratorOrientation(IntPtr handle, out Orientation orientation, out WritingDirection writing_direction, out TextLineOrder textLineOrder, out float deskew_angle);
예제 #11
0
 /// <summary>
 /// C#のコードを返す
 /// </summary>
 /// <returns>この追加描画を実装するC#のコード</returns>
 public override string ToCSharp() => $"DrawTextAdditionally({CSharpCodeProvider.FromVector2DF(Position)}, {CSharpCodeProvider.FromColor(Color)}, {CSharpCodeProvider.FromFont(FontInfo)}, {Text}, WritingDirection.{WritingDirection.ToString()}, AlphaBlendMode.{AlphaBlend.ToString()}, {DrawingPriority}); // {Name}";
예제 #12
0
파일: Object2D.cs 프로젝트: Pctg-x8/Altseed
 /// <summary>
 /// 通常の描画に加えて文字列を描画する。
 /// </summary>
 /// <param name="pos">描画位置</param>
 /// <param name="color">頂点色</param>
 /// <param name="font">フォント</param>
 /// <param name="text">文字列</param>
 /// <param name="writingDirection">行方向</param>
 /// <param name="alphaBlend">アルファブレンドの種類</param>
 /// <param name="priority">描画の優先順位(大きいほど前面に描画される)</param>
 /// <remarks>
 /// OnDrawAdditionallyの中以外では実行してはいけない。
 /// </remarks>
 protected void DrawTextAdditionally(Vector2DF pos, Color color, Font font, string text, WritingDirection writingDirection, AlphaBlendMode alphaBlend, int priority)
 {
     Layer.DrawTextAdditionally(pos, color, font, text, writingDirection, alphaBlend, priority);
 }
예제 #13
0
 /// <summary>
 /// Returns orientation for the block the iterator points to.
 /// </summary>
 /// <param name="orientation">The block orientation.</param>
 /// <param name="writingDirection">The block writing direction.</param>
 /// <param name="textLineOrder">The block text order.</param>
 /// <param name="deskewAngle">The block deskew angle, in radians, counter-clockwise.</param>
 public void GetOrientation(out Orientation orientation, out WritingDirection writingDirection, out TextLineOrder textLineOrder, out float deskewAngle)
 {
     NativeMethods.TessPageIteratorOrientation(this, out orientation, out writingDirection, out textLineOrder, out deskewAngle);
 }
예제 #14
0
파일: Layer2D.cs 프로젝트: Pctg-x8/Altseed
 /// <summary>
 /// 通常の描画に加えて文字列を描画する。
 /// </summary>
 /// <param name="pos">描画位置</param>
 /// <param name="color">頂点色</param>
 /// <param name="font">フォント</param>
 /// <param name="text">文字列</param>
 /// <param name="writingDirection">行方向</param>
 /// <param name="alphaBlend">アルファブレンドの種類</param>
 /// <param name="priority">描画の優先順位(大きいほど前面に描画される)</param>
 /// <remarks>
 /// OnDrawAdditionallyの中以外では実行してはいけない。
 /// </remarks>
 public void DrawTextAdditionally(Vector2DF pos, Color color, Font font, string text, WritingDirection writingDirection, AlphaBlendMode alphaBlend, int priority)
 {
     if (coreLayer2D == null) return;
     coreLayer2D.DrawTextAdditionally(pos, color, IG.GetFont(font), text, (swig.WritingDirection)writingDirection, (swig.AlphaBlendMode)alphaBlend, priority);
 }
예제 #15
0
 public void Orientation(out Orientation orientation, out WritingDirection direction, out TextlineOrder textLineOrder, out float deskewAngle)
 {
     Native.DllImports.TessPageIteratorOrientation(handleRef, out orientation, out direction, out textLineOrder, out deskewAngle);
 }
예제 #16
0
 internal static extern void TessPageIteratorGetOrientation(IntPtr iterator, ref PageOrientation orientation, ref WritingDirection writingDirection, ref TextlineOrder order, ref float deskewAngle);
예제 #17
0
 public static extern void TessPageIteratorOrientation(
     PageIterator handle,
     out Orientation orientation,
     out WritingDirection writingDirection,
     out TextLineOrder textLineOrder,
     out float deskewAngle);
예제 #18
0
파일: Layer2D.cs 프로젝트: neofuji/Altseed
 /// <summary>
 /// 通常の描画に加えて文字列を描画する。
 /// </summary>
 /// <param name="pos">描画位置</param>
 /// <param name="color">頂点色</param>
 /// <param name="font">フォント</param>
 /// <param name="text">文字列</param>
 /// <param name="writingDirection">行方向</param>
 /// <param name="alphaBlend">アルファブレンドの種類</param>
 /// <param name="priority">描画の優先順位(大きいほど前面に描画される)</param>
 /// <remarks>
 /// OnDrawAdditionallyの中以外では実行してはいけない。
 /// </remarks>
 public void DrawTextAdditionally(Vector2DF pos, Color color, Font font, string text, WritingDirection writingDirection, AlphaBlendMode alphaBlend, int priority)
 {
     if (coreLayer2D == null)
     {
         return;
     }
     coreLayer2D.DrawTextAdditionally(pos, color, IG.GetFont(font), text, (swig.WritingDirection)writingDirection, (swig.AlphaBlendMode)alphaBlend, priority);
 }
예제 #19
0
 internal static extern void TessPageIteratorOrientation(HandleRef handle, out Orientation orientation, out WritingDirection writing_direction, out TextlineOrder textline_order, out float deskew_angle);
예제 #20
0
 internal static extern void TessPageIteratorGetOrientation(IntPtr iterator, ref PageOrientation orientation, ref WritingDirection writingDirection, ref TextlineOrder order, ref float deskewAngle);
예제 #21
0
파일: Wrappers.cs 프로젝트: Pctg-x8/Altseed
 /// <summary>
 /// 描画テキストと描画方向を与えると、その文字の描画領域を返す。 
 /// </summary>
 /// <param name="text">描画テキスト </param>
 /// <param name="writingDirection">描画方向 </param>
 /// <returns>文字の描画領域 </returns>
 public asd.Vector2DI CalcTextureSize(string text, WritingDirection writingDirection)
 {
     return CoreInstance.CalcTextureSize(text, (asd.swig.WritingDirection)writingDirection);
 }