2

モノタッチから wcf を介して Windows C# ホストに接続しており、画像をモノタッチにストリーミングして表示できるようにしたいと考えています。

私の画像は、モノタッチでは使用できない System.Drawing.Image オブジェクトに保持されています (UIImage を使用しています)。

ホスト上のイメージを次のような文字列に変換したいと思っていました:

        Image im = Image.FromFile(path);
        MemoryStream ms = new MemoryStream();
        im.Save(ms, im.RawFormat);
        byte[] array = ms.ToArray();
        return Convert.ToBase64String(array);

次に、MonoTouch 内で反対の方法を使用して、イメージを再び取得します。

        byte[] array = Convert.FromBase64String(imageString);
        Image image = Image.FromStream(new MemoryStream(array));
        return image;

これは「純粋な」.net 環境では問題なく動作しますが、monotouch は Image オブジェクトを認識しないため、失敗します。byte[] を UIImage に変換するにはどうすればよいですか?

私はこのようなことを試しました:

  UIImage img = (UIImage)UIImage.FromObject(bytes);

無駄に...

どんな助けでも大歓迎です!

4

1 に答える 1

3

を渡す代わりに、次のim.RawFormatいずれかを使用してみてください。

  • ImageFormat.Bmp
  • ImageFormat.Png

通常、画像の形式によって異なります。これらは にあります。ここSystem.Drawing.Imaging参照してください

これにより、他のクライアント アプリケーションで問題が発生する可能性があります。サーバーが返す形式を判断するために、クライアントに何かを送信させることをお勧めします。

于 2012-05-23T12:08:53.357 に答える