【问题标题】:FieldAccessException When Using FJCore with Silverlight for Windows Phone 7将 FJCore 与 Silverlight for Windows Phone 7 一起使用时的 FieldAccessException
【发布时间】:2010-11-16 18:23:50
【问题描述】:

我发现了这个很棒的 Silverlight 库,它基本上是 libjpeg 的一个端口,所以我很兴奋地去看看它。从 SVN 存储库 (http://fjcore.googlecode.com/svn/trunk/) 下载库后,我能够成功构建库并将 .DLL 的引用添加到我的 Windows Phone 7 项目中。成功构建我的 WP7 项目后,使用模拟器时,应用程序崩溃并出现我以前从未见过的错误:

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

原始代码中的 silverlight 示例运行良好。该示例打开一个“打开文件”对话框,并根据所选内容调整图像大小。不幸的是,我不能在我的 WP7 项目中使用相同的代码。 WP7 类不支持“打开文件”对话框。该库仅使用通用 Stream 对象,因此我从 PhotoChooserTask Completed 事件传入 e.Result(一个 PhotoStream 对象)。

关于我为什么会收到此错误以及如何修复它的任何想法?

在我的 WP7 应用程序中调整图像大小势在必行。毕竟,谁愿意等待通过 3G 网络上传 5MP 图像?我知道我肯定不会。

谢谢!

更新 - 找到在应用线程(不是 UI 线程)上调整 WP7 上图像大小的解决方案

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;
}

【问题讨论】:

    标签: c# silverlight windows-phone-7 fjcore


    【解决方案1】:

    因为您不能在 WP7 应用中使用反射 (DLR)。

    【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    相关资源
    最近更新 更多