我从WPF应用程序调用Windows 10 API。我已经安装了" UWPDesktop" Nuget包也。 我从WPF应用程序调用了UWP OCR API,运行代码后,我得到了一个 异常。
System.InvalidOperationException:'该进程没有包标识。 (HRESULT的例外情况:0x80073D54)'
我刚刚在我的wpf应用程序中编写了这段代码。 并且还添加了UWPDesktop nugget包来访问UWP API。
var ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromLanguage(new Windows.Globalization.Language(" en"));
var file = await Package.Current.InstalledLocation.GetFileAsync(@"Assets\test.png");
using (var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
// Create image decoder.
var decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(stream);
// Load bitmap.
var bitmap = await decoder.GetSoftwareBitmapAsync();
// Extract text from image.
OcrResult result = await ocrEngine.RecognizeAsync(bitmap);
// Return recognized text.
Trace.WriteLine(result);
}
我在第一行遇到异常。
这个例外是什么以及为什么会发生?
答案 0 :(得分:1)
该错误表明OcrEngine.TryCreateFromLanguage只能从UWP应用程序(在应用程序容器中运行)调用,而不能在桌面应用程序(不在容器中运行)中调用。如果查看上帝API文档,您将在Windows运行时方法API上找到DualApiPartition attribute,可以在UWP和桌面上下文中调用。 OcrEngine方法没有此属性,因此无法从桌面应用程序调用。
您的选择是使用不同的OCR包或从应用程序上下文中调用它。对于后者,请考虑将WPF应用程序打包为具有Windows Desktop Bridge
的UWP应用程序答案 1 :(得分:-1)
以下是使用OCR SDK的另一个示例应用程序:
https://github.com/A9T9/Free-OCR-Software
Windows应用商店的免费开源OCR应用程序 - Microsoft OCR库的现代GUI前端。该应用程序还包括对阅读和OCR的PDF文件的支持。