2010-11-16 49 views
0

我發現這個偉大的Silverlight庫基本上是libjpeg的一個端口,所以我都被解僱了。從SVN回購庫(http://fjcore.googlecode.com/svn/trunk/)下載庫後,我能夠成功構建庫並在我的Windows Phone 7項目中添加對.DLL的引用。在成功構建我的WP7項目時,使用模擬器時,應用程序崩潰時出現了我從未見過的錯誤:FieldAccessException將Silverlight用於Windows Phone 7時使用FJCore

FieldAccessException未處理。 - System.Reflection.Emit.OpCodes.Ldarg_1

來自原始代碼的silverlight示例工作正常。該示例打開「打開文件」對話框,並根據選擇的內容調整圖像的大小。不幸的是,我不能在我的WP7項目中使用相同的代碼。 WP7類不支持「打開文件」對話框。該庫只使用一個通用的Stream對象,所以我從PhotoChooserTask Completed事件傳入e.Result(一個PhotoStream對象)。

任何想法,爲什麼我得到這個錯誤,以及如何解決它?

在我的WP7應用程序中調整圖像大小是必要的。畢竟,誰想要通過3G網絡上傳500萬像素的圖像?我知道我確實沒有。

謝謝!

更新 - 找到了應用上的線程上WP7調整圖像大小的解決方案(不是UI線程)

protected Stream ResizeImage(WriteableBitmap tempBitmap, int maxEdge) 
{ 
    WriteableBitmap wb = tempBitmap; 

    // Resize to Max Values... 
    Size widthHeight = GetMaxWidthHeight(wb.PixelWidth, wb.PixelHeight, maxEdge); 
    Stream resizedStream = new MemoryStream(); 
    wb.SaveJpeg(resizedStream, (int)widthHeight.Width, (int)widthHeight.Height, 0, 90); 
    return resizedStream; 
} 

回答

0

,因爲你不能使用WP7應用程序反射(DLR)。

+0

有沒有解決方法? – Jason 2010-11-16 18:34:52

+0

http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/17c03476-cb6e-4428-aa16-6cb8966d28e3 – 2010-11-16 21:20:00

+0

用戶對我的問題的答案在技術上是正確的,但我有點失望缺乏對解決方案的建議。 Tsk,Tsk。 – Jason 2010-11-21 22:04:17

相關問題