问题标签 [lumia-imaging-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 对 Lumia SDK UWP 图片应用多个滤镜
我尝试使用 Lumia Imaging SDK 对图片应用多个滤镜,但我只能使用 1 个滤镜。当我为 Win 8.1 制作它时,我可以使用一组过滤器,但现在它不起作用。我该如何解决?
应用过滤器代码:
c# - 如何提高 BlendEffect 质量?Lumia 成像 3.0 和 UWP
我正在开发一个将文本放入背景图像的应用程序。文本块作为子项放置在画布控件上,我将画布渲染为 PNG。然后我使用 BlendEffect 将它与背景图像混合。
更新 这篇文章专门介绍了使用 Lumia Imaging SDK 的链接效果。不幸的是,其中一位评论者的视野狭隘,并坚持认为我必须了解有损图像和无损图像之间的区别。在我的上下文中告诉孩子如何在 Microsoft Paint 中保存图像一样有用的意见。在其他一些评论中,他甚至傲慢地希望我的应用程序中一定有大量错误并且有一些心理问题。
我是来学习 Lumia Imaging 的,显然遇到了一个对那个 SDK 毫无经验的人,还坚持要炫耀。然后对这个帖子投了反对票,让自己感觉更好。
话虽如此,@Martin Liversage 指出这不仅仅是 JPEG 伪影,这很有帮助。我尝试在另存为 JPEG 的同时使用几个链接步骤和选项,并且确实图像的显示方式有所不同。虽然保存为 PNG 确实提高了质量,但它仍然不是我所期望的。因此,我在这里向任何有使用 SDK 的个人经验的人询问我可以在我的代码中做些什么来改进我的结果。
这是我的代码
这是保存为 JPEG 之前在我的 PC 屏幕上看到的图像
然后,当图像保存为 JPG 时,质量会明显降低,如下所示。放大图像并注意字体的边缘。
那么,如果我想尽可能接近原始图像质量,我有哪些选择?
c# - Lumia Imaging SDK 3.0 Blending AutoEnhance Effect 和其他源抛出 InvalidArgumentException
我正在尝试将现有图像与另一个IImageProvider
已Effect
应用的图像混合。我注意到有几个Effect
s 会抛出 InvalidArgumentException,例如Auto Enhance
and Auto Levels
。许多其他Effect
的s如Antique
效果不会抛出这个错误。
我的代码:
错误出现在Bitmap bitmap = await bitmapRenderer.RenderAsync();
也许我需要设置一些参数,例如图像大小或其他东西,但我无法弄清楚错误消息中缺少什么。我试过使用几个重载,但还是不行。有任何想法吗?
c# - 属性更改期间具有 BlendEffect 的未处理 win32 异常 Lumia Imaging 3.0 UWP
该错误是在我的代码中随机引发的。有这么多的堆栈跟踪可用
当RaisedPropertyChanged
被调用时更常见,例如
所以我注释掉了RaisedPropertyChanged()
方法调用,但它仍然偶尔会被提出。
这updateImageBlending()
是一种在任何混合属性发生更改时重新渲染效果的方法。
softwareBitmapRender
接受 aBlendEffect
并在开始时初始化。
BlendEffect
随着用户更改其属性而更新,例如
是什么导致了错误,我该如何捕捉或禁用它?
c# - 使用 ShareTarget 第二个窗口中的代码编组异常
当从 ShareTarget 合同创建的第二个窗口调用时,我很难处理一些代码,这些代码显然很困难(当您向应用程序共享某些内容时,它会在一个小的独立窗口中打开)。
到目前为止,这是我的代码:
注意:该DispatcherHelper.GetFromUIThreadAsync
方法只检查线程对 UI 线程的访问,如果需要,它会将代码调度到CoreDispatcher
使用CoreApplication.MainView.CoreWindow.Dispatcher
.
问题:如果我的应用程序已经打开,则此代码可以 100% 正常工作,因为此时该
CoreDispatcher
对象已经由之前对该DispatcherHelper
类的调用创建,因此该方法仅使用存储的调度程序来安排工作并且工作正常。但是,如果在打开 ShareTarget 窗口时关闭了应用程序(因此DispatcherHelper
必须第一次创建调度程序),则该CoreApplication.MainView.CoreWindow
行将引发异常。一个非常奇怪的:
COMException
: 对 ASTA 的 COM 调用被阻止,因为调用链源自或通过另一个 ASTA。这种呼叫模式容易发生死锁,并且被公寓呼叫控制所禁止。对 ASTA(线程 10276)的 COM 调用(IID:{638BB2DB-451D-4661-B099-414F34FFB9F1},方法索引:6)被阻止,因为调用链源自或通过另一个 ASTA(线程 4112)。这种呼叫模式容易发生死锁,并且被公寓呼叫控制所禁止。
因此,即使从不同的窗口调用,我也需要一种方法来使该方法可靠。我尝试了不同的选择:
#1 : 只调用该代码而不分派到不同的线程,因为理论上我此时应该在 UI 线程上 ---> FAIL(应用程序调用了一个为不同线程编组的接口。(来自 HRESULT 的异常: 0x8001010E (RPC_E_WRONG_THREAD)))
#2 : 手动调用CoreApplication.MainView.CoreWindow.Dispatcher
以调度该代码块 ---> FAIL (我得到了上面提到的那个奇怪COMException
的)
#3:手动使用CoreApplication.MainView.Dispatcher
来调度代码块(因为它是.CoreWindow
产生异常的部分)---> FAIL(COMException
:未找到项目)
#4 : 使用CoreApplication.GetCurrentView().CoreWindow.Dispatcher
, CoreApplication.GetCurrentView().Dispatcher
,Window.Current.CoreWindow.Dispatcher
和Window.Current.Content.Dispatcher
来调度该代码---> FAIL(又是错误的线程,我得到了通常的编组异常)
所有这些编组异常都被抛出result = await blurEffect.GetBitmapAsync(blurred, OutputOption.Stretch)
,所以我怀疑它可能与 Lumia Imaging SDK 有关。我的意思是,我很确定我实际上是在 UI 线程上,否则我将无法创建WriteableBitmap
该类的实例,对吗?
为什么我可以创建
WriteableBitmap
对象(据我所知,它们需要在 UI 线程上创建),但GetBitmapAsync
Lumia SDK 中的该方法总是抛出该编组异常?我在我的应用程序的任何地方都使用它,没有任何问题,为什么它不能从 ShareTarget 窗口工作?有什么我需要做的吗?
谢谢你的帮助!