0

基本的にlibjpegの移植版であるSilverlight用のこの素晴らしいライブラリを見つけたので、私はそれをチェックするためにみんな興奮しました。SVNリポジトリ(http://fjcore.googlecode.com/svn/trunk/)からライブラリをダウンロードした後、ライブラリを正常にビルドし、.DLLへの参照をWindowsPhone7プロジェクトに追加することができました。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;
}
4

1 に答える 1

0

WP7 アプリではリフレクション (DLR) を使用できないためです。

于 2010-11-16T18:33:00.400 に答える