0

C# でスマート デバイス アプリケーションを開発しています。その中で、私はWebサービスを呼び出しています。Web サービス メソッドは Google マップを返します。メソッドの戻り値の型はオブジェクト [] です。オブジェクト [] には、イメージがバイト形式で含まれています。Google マップの画像に対する SOAP 応答は xsi:type="xs:base64Binary" です。オブジェクトでは、文字列を取得していません。オブジェクトでは、バイト配列を取得しています。したがって、次の変数でWebサービスの応答をキャッチしています。

オブジェクト [] GoogleMap;

デバッグ後、自動で次のような結果が得られていることがわかります。

名前: 値: GoogleMap {object[1]} [0] {byte[23570]}

アプリケーションで実際の画像を表示する必要があります。画像を表示するには、どのタイプのキャストを行う必要がありますか。.net フレームワークのすべてのコア機能が .net コンパクト フレームワークで動作しないことを確認してください。上記の問題を解決できるコードまたはリンクを教えていただけますか?

4

1 に答える 1

1

まず、バイト配列を取得する必要があります。

byte[] data = (byte[]) objects[0];

次に、そのMemoryStream周りにを作成します。

MemoryStream stream = new MemoryStream(data);

Bitmap次に、ストリームから を作成します。

Bitmap bitmap = new Bitmap(stream);

- を破棄するときは、ストリームを閉じてしまうので、閉じないでください。MemoryStreamImage

(編集:CFにないように見えるため、コンストラクターImage.FromStreamの呼び出しに変更されました。)BitmapImage.FromStream

于 2010-03-03T07:04:28.730 に答える