我从monotouch通过wcf连接到我的windows c#主机,并希望将图像流回单声道,以便我可以显示它。
我的图像保存在System.Drawing.Image对象中,该对象在monotouch中不可用(它使用UIImage)。
我希望将主机上的Image转换为如此字符串:
Image im = Image.FromFile(path);
MemoryStream ms = new MemoryStream();
im.Save(ms, im.RawFormat);
byte[] array = ms.ToArray();
return Convert.ToBase64String(array);
然后在MonoTouch中使用相反的方法再次获取我的Image:
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);
无济于事......
非常感谢任何帮助!
答案 0 :(得分:3)
不要传递im.RawFormat
,而是尝试使用以下之一:
ImageFormat.Bmp
ImageFormat.Png
取决于图像通常采用的格式。这些内容位于System.Drawing.Imaging
,see here。
这可能会给其他客户端应用程序带来麻烦,我建议让客户端发送一些东西来确定服务器返回的格式。