Beispiel #1
0
        private void vision_KeyTestButton_Click(object sender, EventArgs e)
        {
            string tempKey = Program.Settings.KeyInfo.Key;

            try
            {
                Program.Settings.KeyInfo.Key = vision_KeyTextBox.Text;

                Rectangle rect = new Rectangle(0, 0, 300, 100);

                using (Bitmap image = new Bitmap(rect.Width, rect.Height))
                    using (Graphics graphics = Graphics.FromImage(image))
                        using (Font font = new Font("Arial", 50))
                        {
                            graphics.Clear(Color.White);

                            graphics.SmoothingMode     = SmoothingMode.AntiAlias;
                            graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
                            graphics.PixelOffsetMode   = PixelOffsetMode.HighQuality;
                            graphics.TextRenderingHint = TextRenderingHint.AntiAlias;

                            StringFormat sf = new StringFormat();
                            sf.LineAlignment = StringAlignment.Center;
                            sf.Alignment     = StringAlignment.Center;
                            graphics.DrawString("Hello", font, Brushes.Black, rect, sf);

                            string tempPath = OcrHelper.GetTempPath(".png");

                            try
                            {
                                image.Save(tempPath);
                                OcrEngine engine = OcrEngine.Create(OcrEngineType.GoogleVision);
                                OcrResult result = engine.LoadFile(tempPath, "en");
                                MessageBox.Show(this,
                                                "Result: " + result.ResultType + Environment.NewLine +
                                                (string.IsNullOrEmpty(result.Text) ? string.Empty : "Text: " + result.Text + Environment.NewLine) +
                                                (string.IsNullOrEmpty(result.Error) ? string.Empty : "Error:" + result.Error));
                            }
                            finally
                            {
                                try
                                {
                                    File.Delete(tempPath);
                                }
                                catch { }
                            }
                        }
            }
            finally
            {
                Program.Settings.KeyInfo.Key = tempKey;
            }
        }
Beispiel #2
0
        public void UpdateSettings()
        {
            if (IsDisposed)
            {
                return;
            }

            if (InvokeRequired)
            {
                Invoke((MethodInvoker) delegate { UpdateSettings(); });
                return;
            }

            isUpdating = true;

            translatableLanguages.Clear();
            ocrableLanguages.Clear();

            if (Program.ActiveOcrEngine != null)
            {
                if (Program.ActiveOcrEngine.IsInstalled)
                {
                    foreach (string language in Program.ActiveOcrEngine.SupportedLanguages.Keys)
                    {
                        CultureInfo culture = CultureInfo.GetCultureInfo(language);
                        if (!ocrableLanguages.Contains(culture.DisplayName))
                        {
                            ocrableLanguages.Add(culture.DisplayName);
                        }
                    }
                }
                else
                {
                    OcrEngineType engineType = OcrEngine.GetType(Program.ActiveOcrEngine.GetType());
                    foreach (Dictionary <OcrEngineType, List <string> > remoteTypes in OcrNetwork.RemoteTypes.Values)
                    {
                        if (remoteTypes.ContainsKey(engineType))
                        {
                            List <string> supportedLanguages = remoteTypes[engineType];
                            foreach (string language in supportedLanguages)
                            {
                                // Remote PC may support different cultures
                                //CultureInfo culture = CultureInfo.GetCultureInfo(language);
                                CultureInfo culture = null;
                                if (LocaleHelper.TryParseCulture(language, out culture) && !ocrableLanguages.Contains(culture.DisplayName))
                                {
                                    ocrableLanguages.Add(culture.DisplayName);
                                }
                            }
                        }
                    }
                }
            }

            if (Program.ActiveTranslator != null)
            {
                foreach (string language in Program.ActiveTranslator.SupportedLanguages.Keys)
                {
                    CultureInfo culture = CultureInfo.GetCultureInfo(language);
                    if (!translatableLanguages.Contains(culture.DisplayName))
                    {
                        translatableLanguages.Add(culture.DisplayName);
                    }
                }
            }

            availableEngines.Clear();
            foreach (var value in Enum.GetValues(typeof(OcrEngineType)))
            {
                OcrEngineType type = (OcrEngineType)value;
                if (RemoteOcr.IsRemote(type) || OcrEngine.Create(type).IsInstalled)
                {
                    availableEngines.Add(type);
                }
            }

            UpdateLanguageComboBoxStyle();
            UpdateEngineComboBoxStyle();
            RunOcr();

            isUpdating = false;
        }
Beispiel #3
0
        public void Initialize()
        {
            isUpdating = true;

            Program.SetEngines(engines);
            Program.SetTranslators(translators);

            foreach (var value in Enum.GetValues(typeof(OcrEngineType)))
            {
                OcrEngineType type   = (OcrEngineType)value;
                OcrEngine     engine = OcrEngine.Create(type);
                if (engine != null)// && engine.IsInstalled)
                {
                    engines[type] = engine;
                    ocrEngineToolStripComboBox.Items.Add(type);
                }
            }
            if (ocrEngineToolStripComboBox.Items.Count > 0)
            {
                ocrEngineToolStripComboBox.SelectedIndex = 0;
            }

            foreach (var value in Enum.GetValues(typeof(TranslatorType)))
            {
                TranslatorType type       = (TranslatorType)value;
                Translator     translator = Translator.Create(type);
                if (translator != null && translator.IsEnabled)
                {
                    translators[type] = translator;
                    translateApiToolStripComboBox.Items.Add(type);
                }
            }
            if (translateApiToolStripComboBox.Items.Count > 0)
            {
                translateApiToolStripComboBox.SelectedIndex = 0;
            }

            foreach (var value in Enum.GetValues(typeof(OcrEngineProfile)))
            {
                OcrEngineProfile profile = (OcrEngineProfile)value;
                if (profile < OcrEngineProfile.Linear)
                {
                    ocrProfileToolStripComboBox.Items.Add(profile);
                }
                else
                {
                    for (int i = 2; i <= Program.ProfilesCount; i++)
                    {
                        ocrProfileToolStripComboBox.Items.Add(profile + " " + i + "x");
                    }
                }
            }
            if (ocrProfileToolStripComboBox.Items.Count > 0)
            {
                ocrProfileToolStripComboBox.SelectedIndex = 0;
            }

            UpdateLanguages();

            ocrEngineToolStripComboBox.ComboBox.PreviewKeyDown     += ComboBox_PreviewKeyDown;
            ocrProfileToolStripComboBox.ComboBox.PreviewKeyDown    += ComboBox_PreviewKeyDown;
            translateApiToolStripComboBox.ComboBox.PreviewKeyDown  += ComboBox_PreviewKeyDown;
            translateFromToolStripComboBox.ComboBox.PreviewKeyDown += ComboBox_PreviewKeyDown;
            translateToToolStripComboBox.ComboBox.PreviewKeyDown   += ComboBox_PreviewKeyDown;

            ocrEngineToolStripComboBox.ComboBox.MouseWheel     += toolStripComboBox_MouseWheel;
            ocrProfileToolStripComboBox.ComboBox.MouseWheel    += toolStripComboBox_MouseWheel;
            translateApiToolStripComboBox.ComboBox.MouseWheel  += toolStripComboBox_MouseWheel;
            translateFromToolStripComboBox.ComboBox.MouseWheel += toolStripComboBox_MouseWheel;
            translateToToolStripComboBox.ComboBox.MouseWheel   += toolStripComboBox_MouseWheel;

            comboBoxPrevIndex[ocrEngineToolStripComboBox]     = 0;
            comboBoxPrevIndex[ocrProfileToolStripComboBox]    = 0;
            comboBoxPrevIndex[translateApiToolStripComboBox]  = 0;
            comboBoxPrevIndex[translateFromToolStripComboBox] = 0;
            comboBoxPrevIndex[translateToToolStripComboBox]   = 0;

            translateFromToolStripComboBox.ComboBox.DrawItem += LanguageComboBox_DrawItem;
            translateFromToolStripComboBox.ComboBox.DrawMode  = DrawMode.OwnerDrawFixed;

            translateToToolStripComboBox.ComboBox.DrawItem += LanguageComboBox_DrawItem;
            translateToToolStripComboBox.ComboBox.DrawMode  = DrawMode.OwnerDrawFixed;

            ocrEngineToolStripComboBox.ComboBox.DrawItem += EngineComboBox_DrawItem;
            ocrEngineToolStripComboBox.ComboBox.DrawMode  = DrawMode.OwnerDrawFixed;

            ocrImagePanel.ImageChanged += ocrImagePanel_ImageChanged;
            OcrHelper.Complete         += OcrHelper_Complete;
            OcrHelper.Start            += OcrHelper_Start;
            TranslateHelper.Start      += TranslateHelper_Start;
            TranslateHelper.Complete   += TranslateHelper_Complete;

            string from = Program.Settings.LanguageProfiles.Slot1;
            string to   = Program.Settings.TargetLanguage.TargetLanguage;

            if (!string.IsNullOrEmpty(from) && !string.IsNullOrEmpty(to))
            {
                int fromIndex = translateFromToolStripComboBox.Items.IndexOf(from);
                int toIndex   = translateToToolStripComboBox.Items.IndexOf(to);
                if (fromIndex >= 0 && toIndex >= 0)
                {
                    translateFromToolStripComboBox.SelectedIndex = fromIndex;
                    translateToToolStripComboBox.SelectedIndex   = toIndex;
                }
            }

            hotkeys.KeyPressed += hotkeys_KeyPressed;
            hotkeys.ClearHotKey();
            hotkeys.RegisterHotKey(Program.Settings.AutoTyper.Hotkey);

            isUpdating = false;
            SettingsChanged();

            OcrNetwork.Update();
        }