fixed #2134: Added OCR image button to main window right click task menu

This commit is contained in:
Jaex 2016-12-12 11:45:16 +03:00
parent bfe0fa5f4a
commit abed719861
5 changed files with 73 additions and 19 deletions

View file

@ -154,6 +154,7 @@ private void InitializeComponent()
this.tsmiShortenSelectedURL = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiShareSelectedURL = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiShowQRCode = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiOCRImage = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiShowResponse = new System.Windows.Forms.ToolStripMenuItem();
this.tsmiClearList = new System.Windows.Forms.ToolStripMenuItem();
this.tssUploadInfo1 = new System.Windows.Forms.ToolStripSeparator();
@ -908,6 +909,7 @@ private void InitializeComponent()
this.tsmiShortenSelectedURL,
this.tsmiShareSelectedURL,
this.tsmiShowQRCode,
this.tsmiOCRImage,
this.tsmiShowResponse,
this.tsmiClearList,
this.tssUploadInfo1,
@ -1212,6 +1214,13 @@ private void InitializeComponent()
resources.ApplyResources(this.tsmiShowQRCode, "tsmiShowQRCode");
this.tsmiShowQRCode.Click += new System.EventHandler(this.tsmiShowQRCode_Click);
//
// tsmiOCRImage
//
this.tsmiOCRImage.Image = global::ShareX.Properties.Resources.edit_drop_cap;
this.tsmiOCRImage.Name = "tsmiOCRImage";
resources.ApplyResources(this.tsmiOCRImage, "tsmiOCRImage");
this.tsmiOCRImage.Click += new System.EventHandler(this.tsmiOCRImage_Click);
//
// tsmiShowResponse
//
this.tsmiShowResponse.Image = global::ShareX.Properties.Resources.application_browser;
@ -2096,5 +2105,6 @@ private void InitializeComponent()
private System.Windows.Forms.PictureBox pbPatreonHide;
private System.Windows.Forms.ToolTip ttMain;
private System.Windows.Forms.ToolStripMenuItem tsmiDownloadSelectedURL;
private System.Windows.Forms.ToolStripMenuItem tsmiOCRImage;
}
}

View file

@ -610,6 +610,7 @@ private void UpdateContextMenu()
tsmiShortenSelectedURL.Visible = uim.SelectedItem.IsURLExist;
tsmiShareSelectedURL.Visible = uim.SelectedItem.IsURLExist;
tsmiShowQRCode.Visible = uim.SelectedItem.IsURLExist;
tsmiOCRImage.Visible = uim.SelectedItem.IsImageFile;
tsmiShowResponse.Visible = !string.IsNullOrEmpty(uim.SelectedItem.Info.Result.Response);
}
@ -1319,7 +1320,7 @@ private void tsmiTextCapture_Click(object sender, EventArgs e)
try
{
TaskHelpers.OpenOCR();
TaskHelpers.OCRImage();
}
catch (Exception ex)
{
@ -1647,7 +1648,7 @@ private void tsmiTrayLastRegion_Click(object sender, EventArgs e)
private void tsmiTrayTextCapture_Click(object sender, EventArgs e)
{
TaskHelpers.OpenOCR();
TaskHelpers.OCRImage();
}
private void tsmiTrayToggleHotkeys_Click(object sender, EventArgs e)
@ -1868,6 +1869,11 @@ private void tsmiShowQRCode_Click(object sender, EventArgs e)
uim.ShowQRCode();
}
private void tsmiOCRImage_Click(object sender, EventArgs e)
{
uim.OCRImage();
}
private void tsmiShowResponse_Click(object sender, EventArgs e)
{
uim.ShowResponse();

View file

@ -1188,6 +1188,12 @@
<data name="tsmiShowQRCode.Text" xml:space="preserve">
<value>Show QR code...</value>
</data>
<data name="tsmiOCRImage.Size" type="System.Drawing.Size, System.Drawing">
<value>172, 22</value>
</data>
<data name="tsmiOCRImage.Text" xml:space="preserve">
<value>OCR image...</value>
</data>
<data name="tsmiShowResponse.Size" type="System.Drawing.Size, System.Drawing">
<value>172, 22</value>
</data>
@ -1240,7 +1246,7 @@
<value>Image preview</value>
</data>
<data name="cmsTaskInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 362</value>
<value>173, 384</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Name" xml:space="preserve">
<value>cmsTaskInfo</value>
@ -2427,6 +2433,12 @@
<data name="&gt;&gt;tsmiShowQRCode.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiOCRImage.Name" xml:space="preserve">
<value>tsmiOCRImage</value>
</data>
<data name="&gt;&gt;tsmiOCRImage.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tsmiShowResponse.Name" xml:space="preserve">
<value>tsmiShowResponse</value>
</data>
@ -2911,6 +2923,6 @@
<value>MainForm</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>ShareX.HotkeyForm, ShareX, Version=11.4.1.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HotkeyForm, ShareX, Version=11.5.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View file

@ -124,7 +124,7 @@ public static void ExecuteJob(TaskSettings taskSettings, HotkeyType job, CLIComm
OpenWebpageCapture(safeTaskSettings);
break;
case HotkeyType.TextCapture:
OpenOCR(safeTaskSettings);
OCRImage(safeTaskSettings);
break;
case HotkeyType.AutoCapture:
OpenAutoCapture();
@ -918,26 +918,47 @@ public static void OpenRuler(TaskSettings taskSettings = null)
RegionCaptureTasks.ShowScreenRuler(taskSettings.CaptureSettings.SurfaceOptions);
}
public static void OpenOCR(TaskSettings taskSettings = null)
public static void OCRImage(TaskSettings taskSettings = null)
{
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
using (Image img = RegionCaptureTasks.GetRegionImage(taskSettings.CaptureSettings.SurfaceOptions))
{
if (img != null)
OCRImage(img);
}
}
public static void OCRImage(Image img)
{
if (img != null)
{
using (Stream stream = SaveImageAsStream(img, EImageFormat.PNG))
{
using (Stream stream = SaveImageAsStream(img, EImageFormat.PNG))
{
if (stream != null)
{
using (OCRSpaceForm form = new OCRSpaceForm(stream, "ShareX.png"))
{
form.Language = Program.Settings.OCRLanguage;
form.ShowDialog();
Program.Settings.OCRLanguage = form.Language;
}
}
}
OCRImage(stream, "ShareX.png");
}
}
}
public static void OCRImage(string filePath)
{
if (File.Exists(filePath))
{
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
OCRImage(fs, Path.GetFileName(filePath));
}
}
}
public static void OCRImage(Stream stream, string fileName)
{
if (stream != null)
{
using (OCRSpaceForm form = new OCRSpaceForm(stream, fileName))
{
form.Language = Program.Settings.OCRLanguage;
form.ShowDialog();
Program.Settings.OCRLanguage = form.Language;
}
}
}

View file

@ -342,6 +342,11 @@ public void ShowQRCode()
if (IsItemSelected && SelectedItem.IsURLExist) new QRCodeForm(SelectedItem.Info.Result.URL).Show();
}
public void OCRImage()
{
if (IsItemSelected && SelectedItem.IsImageFile) TaskHelpers.OCRImage(SelectedItem.Info.FilePath);
}
public void ShowResponse()
{
if (IsItemSelected && SelectedItem.Info.Result != null && !string.IsNullOrEmpty(SelectedItem.Info.Result.Response))