C# 使用UWPDesktop nuget包从WPF应用程序调用UWP OCR示例
我正在从我的WPF应用程序调用Windows10API。我还安装了“UWPDesktop”Nuget包。 我已经从WPF应用程序调用了UWP OCR API,在运行代码之后,我得到了一个 例外 System.InvalidOperationException:'进程没有包标识。 (HRESULT的例外:0x80073D54)' 我刚刚在wpf应用程序中编写了这段代码。 并且还添加了UWPDesktop nugget包来访问UWP API var ocrEngine=Windows.Media.Ocr.ocrEngine.TryCreateFromLanguage(新Windows.Globalization.Language(“en”) 我在第一行遇到异常C# 使用UWPDesktop nuget包从WPF应用程序调用UWP OCR示例,c#,wpf,xaml,uwp,C#,Wpf,Xaml,Uwp,我正在从我的WPF应用程序调用Windows10API。我还安装了“UWPDesktop”Nuget包。 我已经从WPF应用程序调用了UWP OCR API,在运行代码之后,我得到了一个 例外 System.InvalidOperationException:'进程没有包标识。 (HRESULT的例外:0x80073D54)' 我刚刚在wpf应用程序中编写了这段代码。 并且还添加了UWPDesktop nugget包来访问UWP API var ocrEngine=Windows.Media.O
此异常是什么以及发生的原因?该错误表示只能从UWP应用程序(在应用程序容器中运行)调用OcrEngine.TryCreateFromLanguage,而不能在桌面应用程序(不在容器中运行)中调用。如果您查看godapi文档,您会发现一个可以在UWP和桌面上下文中调用的Windows运行时方法API。OcrEngine方法没有此属性,因此无法从桌面应用程序调用
您可以选择使用不同的OCR软件包或从应用程序上下文中调用它。对于后者来说,将WPF应用程序打包为UWP应用程序的应该考虑添加一些代码来帮助我们。“上帝API文档”是什么意思?Microsoft文档网站上未列出该属性。啊,对不起,我现在明白你的意思了。例如,BluetoothLEDevice在文档中定义了该属性。
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);
}