Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否在Windows Phone 8应用程序中不使用WriteableBitmap或类似工具将位图转换为jpeg?_C#_Windows Phone 8_Bitmap_Jpeg - Fatal编程技术网

C# 是否在Windows Phone 8应用程序中不使用WriteableBitmap或类似工具将位图转换为jpeg?

C# 是否在Windows Phone 8应用程序中不使用WriteableBitmap或类似工具将位图转换为jpeg?,c#,windows-phone-8,bitmap,jpeg,C#,Windows Phone 8,Bitmap,Jpeg,我已经知道如何使用WriteableBitmap对象(带有WriteableBitmapEx扩展)将位图转换为JPEG流。问题是必须在UI线程上创建WriteableBitmap对象,强制RunAsync()或Dispatcher.BeginInvoke()的用户将代码推送到UI线程,否则我会得到一个RPC_E_错误的_线程或UnauthorizedAccess异常。将代码推送到UI线程会使代码流更难控制,并且通过添加线程开关会大大降低速度。由于我的应用程序正在实时处理来自手机摄像头的帧,所以线

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

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


更新:位图源是缓冲区中包含位图的流对象。我之所以使用WriteableBitmap,是因为我需要将位图转换为JPEG格式,并且我正在使用可写位图来完成此操作。

您可以使用托管版本的libjpeg


由于与Silverlight profile兼容,我假设它将在Windows应用商店应用程序下工作,因此使用它,您不需要创建任何UI对象。

您真正拥有的是什么,BitmapImage,BitmapSource…?我拥有一个缓冲区中有位图的流对象。ehm。。。那么,为什么不将该流读取到字节数组中呢?因为我需要将其转换为JPEG对象,并且我正在使用WriteableBitmap来完成这项工作。现在把它添加到我的帖子里。好吧,现在它有意义了。您在流中有一个BMP,并希望将其转换为JPG,让我看一下,5分钟后回来;)