public async Task RetrieveAndProcessSignal(MarketInfo marketInfo)
        {
            try
            {
                var bitmapAnalyzer = new BitmapAnalyzer();
                var signalType     = await bitmapAnalyzer.GetLastSignal(marketInfo);

                var(lastResult, signalsCount) = await GetLastSignal(marketInfo);

                if (signalType == SignalType.None)
                {
                    return;
                }
                marketInfo.SignalType = signalType;
                await CheckSignalWithLast(signalType, lastResult, marketInfo);

                var table = await GetSignalsTable();

                var insertOperation = TableOperation.Insert(new Signal {
                    Id = signalsCount, SignalType = signalType.ToString().ToLower(), Market = marketInfo.Market
                });
                await table.ExecuteAsync(insertOperation);

                Logger.Info($"Inserted signal {signalType} for {marketInfo.Market}");
            }
            catch (Exception e)
            {
                Logger.Error(e.ToString());
            }
        }
        private List <Multistring> _GetMultiLine(Bitmap bitmap, Rectangle bounds, int font_color)
        {
            Rectangle  dest_bounds = BitmapAnalyzer.BoundingRectangle(bitmap, bounds, font_color);
            FastBitmap dest_bitmap = new FastBitmap(bitmap);

            List <Multistring> result = RecognizeMultiLine(dest_bitmap, dest_bounds, font_color);

            dest_bitmap.UnlockBitmap();

            PrintPossibleFonts();

            return(result);
        }
Beispiel #3
0
        public FontChar(FontCharCollection font_chars, char character)
        {
            this.character  = character;
            this.font_chars = font_chars;
            this.font       = font_chars.Font;
            this.color      = Color.White.ToArgb();

            string s_char = "" + character;
            Size   size   = TextRenderer.MeasureText(s_char, font, new Size(int.MaxValue, int.MaxValue));

            size.Width  *= 2;
            size.Height *= 2;
            Bitmap   char_bmp = new Bitmap(size.Width, size.Height);
            Graphics g        = Graphics.FromImage(char_bmp);

            TextRenderer.DrawText(g, s_char, font, new Point(0, 0), Color.White, TextFormatFlags.NoPrefix);

            //if ((int)character == 8364)
            //{
            //    char_bmp.Save("etmerkki.bmp");
            //    Console.ReadLine();
            //}

            //g.DrawString(s_char, font, new SolidBrush(Color.White), new Point(0, 0));
            //g.Flush();

            bitmap = new FastBitmap(BitmapAnalyzer.BoundingBitmap(char_bmp, this.color, out crop_rect));


            y_offsets   = new int[bitmap.Width];
            pixel_count = 0;

            for (int x = 0; x < bitmap.Width; x++)
            {
                y_offsets[x] = -1;

                for (int y = 0; y < bitmap.Height; y++)
                {
                    if (bitmap.GetPixel(x, y) == this.color)
                    {
                        if (y_offsets[x] < 0)
                        {
                            y_offsets[x] = y;
                        }

                        pixel_count++;
                    }
                }
            }
        }