mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 17:56:51 +13:00
Added OCRSpace class
This commit is contained in:
parent
ecd9cdcb59
commit
c430351c75
3 changed files with 151 additions and 0 deletions
|
@ -76,5 +76,6 @@ public static partial class APIKeys
|
|||
public static string GoogleClientSecret = "";
|
||||
public static string TwitterConsumerKey = "";
|
||||
public static string TwitterConsumerSecret = "";
|
||||
public static string OCRSpaceAPIKey = "";
|
||||
}
|
||||
}
|
149
ShareX.UploadersLib/OtherServices/OCRSpace.cs
Normal file
149
ShareX.UploadersLib/OtherServices/OCRSpace.cs
Normal file
|
@ -0,0 +1,149 @@
|
|||
#region License Information (GPL v3)
|
||||
|
||||
/*
|
||||
ShareX - A program that allows you to take screenshots and share any file type
|
||||
Copyright (c) 2007-2016 ShareX Team
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
Optionally you can also view the license at <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#endregion License Information (GPL v3)
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace ShareX.UploadersLib.OtherServices
|
||||
{
|
||||
public enum OCRSpaceLanguages
|
||||
{
|
||||
[Description("Czech")]
|
||||
ce,
|
||||
[Description("Danish")]
|
||||
dan,
|
||||
[Description("Dutch")]
|
||||
dut,
|
||||
[Description("English")]
|
||||
eng,
|
||||
[Description("Finnish")]
|
||||
fin,
|
||||
[Description("French")]
|
||||
fre,
|
||||
[Description("German")]
|
||||
ger,
|
||||
[Description("Hungarian")]
|
||||
hun,
|
||||
[Description("Italian")]
|
||||
ita,
|
||||
[Description("Norwegian")]
|
||||
nor,
|
||||
[Description("Polish")]
|
||||
pol,
|
||||
[Description("Portuguese")]
|
||||
por,
|
||||
[Description("Spanish")]
|
||||
spa,
|
||||
[Description("Swedish")]
|
||||
swe,
|
||||
[Description("Chinese Simplified")]
|
||||
chs,
|
||||
[Description("Greek")]
|
||||
gre,
|
||||
[Description("Japanese")]
|
||||
jpn,
|
||||
[Description("Russian")]
|
||||
rus,
|
||||
[Description("Turkish")]
|
||||
tur,
|
||||
[Description("Chinese Traditional")]
|
||||
cht,
|
||||
[Description("Korean")]
|
||||
kor
|
||||
}
|
||||
|
||||
public class OCRSpace : Uploader
|
||||
{
|
||||
private const string APIURLFree = "https://api.ocr.space/parse/image";
|
||||
private const string APIURLUSA = "?";
|
||||
private const string APIURLEurope = "https://apipro3.ocr.space/parse/image"; // Frankfurt
|
||||
private const string APIURLAsia = "https://apipro8.ocr.space/parse/image"; // Tokyo
|
||||
|
||||
public OCRSpaceResponse DoOCR(Stream stream, string fileName, OCRSpaceLanguages language, bool overlay = false)
|
||||
{
|
||||
Dictionary<string, string> arguments = new Dictionary<string, string>();
|
||||
arguments.Add("apikey", APIKeys.OCRSpaceAPIKey);
|
||||
//arguments.Add("url", "");
|
||||
arguments.Add("language", language.ToString());
|
||||
arguments.Add("isOverlayRequired", overlay.ToString());
|
||||
|
||||
UploadResult ur = UploadData(stream, APIURLEurope, fileName, "file", arguments);
|
||||
|
||||
if (ur.IsSuccess)
|
||||
{
|
||||
return JsonConvert.DeserializeObject<OCRSpaceResponse>(ur.Response);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public class OCRSpaceResponse
|
||||
{
|
||||
public List<OCRSpaceParsedResult> ParsedResults { get; set; }
|
||||
public int OCRExitCode { get; set; }
|
||||
public bool IsErroredOnProcessing { get; set; }
|
||||
public string ErrorMessage { get; set; }
|
||||
public string ErrorDetails { get; set; }
|
||||
public string ProcessingTimeInMilliseconds { get; set; }
|
||||
}
|
||||
|
||||
public class OCRSpaceParsedResult
|
||||
{
|
||||
public OCRSpaceTextOverlay TextOverlay { get; set; }
|
||||
public int FileParseExitCode { get; set; }
|
||||
public string ParsedText { get; set; }
|
||||
public string ErrorMessage { get; set; }
|
||||
public string ErrorDetails { get; set; }
|
||||
}
|
||||
|
||||
public class OCRSpaceTextOverlay
|
||||
{
|
||||
public List<OCRSpaceLine> Lines { get; set; }
|
||||
public bool HasOverlay { get; set; }
|
||||
public string Message { get; set; }
|
||||
}
|
||||
|
||||
public class OCRSpaceLine
|
||||
{
|
||||
public List<OCRSpaceWord> Words { get; set; }
|
||||
public int MaxHeight { get; set; }
|
||||
public int MinTop { get; set; }
|
||||
}
|
||||
|
||||
public class OCRSpaceWord
|
||||
{
|
||||
public string WordText { get; set; }
|
||||
public int Left { get; set; }
|
||||
public int Top { get; set; }
|
||||
public int Height { get; set; }
|
||||
public int Width { get; set; }
|
||||
}
|
||||
}
|
|
@ -211,6 +211,7 @@
|
|||
<Compile Include="Helpers\OAuth\IOAuthBase.cs" />
|
||||
<Compile Include="Helpers\SSLBypassHelper.cs" />
|
||||
<Compile Include="BaseServices\URLSharingService.cs" />
|
||||
<Compile Include="OtherServices\OCRSpace.cs" />
|
||||
<Compile Include="SharingServices\DeliciousSharingService.cs" />
|
||||
<Compile Include="SharingServices\EmailSharingService.cs" />
|
||||
<Compile Include="SharingServices\FacebookSharingService.cs" />
|
||||
|
|
Loading…
Reference in a new issue