转换位图到jpeg没有使用WriteableBitmap或类似的Windows Phone 8应用程序

本文关键字:Windows Phone 应用程序 WriteableBitmap jpeg 位图 转换 | 更新日期: 2023-09-27 18:05:53

我已经知道如何使用WriteableBitmap对象(与WriteableBitmapEx扩展)将位图转换为JPEG流。问题是WriteableBitmap对象必须在UI线程上创建,强制RunAsync()或Dispatcher.BeginInvoke()的用户将代码推送到UI线程,否则我会得到一个rpce_wrong_thread或UnauthorizedAccess异常。将代码推送到UI线程会使代码流更难控制,并且通过添加线程开关会大大降低速度。由于我的应用程序正在实时处理来自手机摄像头的帧,因此线程切换会对性能造成很大影响。

有没有人知道如何将位图转换为JPEG流或字节数组,而不使用WriteableBitmap对象或任何其他必须从UI线程创建/执行的对象?

UPDATE:位图源是一个流对象,其缓冲区中有位图。我使用WriteableBitmap的原因是因为我需要将位图转换为JPEG格式,我使用Writeable bitmap来完成。

转换位图到jpeg没有使用WriteableBitmap或类似的Windows Phone 8应用程序

您可以使用libjpeg的托管版本,libjpeg.net

与Silverlight配置文件兼容,我认为它将在Windows商店应用程序下工作,因此您不需要创建任何UI对象