2

我正在通过 wcf 从 monotouch 连接到我的 windows c# 主机,并希望将图像流式传输回 monotouch,以便我可以显示它。

我的图像保存在一个 System.Drawing.Image 对象中,该对象在 monotouch 中不可用(它使用 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 回答