如果我有一个NSData中的图像数据,从图像中提取如下,那么我该如何将此NSData对象转换为字节数组?
NSData data = NSData.FromUrl(NSUrl.FromString(urlString));
NSData data = NSData.FromUrl(NSUrl.FromString(urlString));
NSData data = NSData.FromUrl(NSUrl.FromString(urlString));
byte[] dataBytes = new byte[data.Length];
System.Runtime.InteropServices.Marshal.Copy(data.Bytes, dataBytes, 0, Convert.ToInt32(data.Length));
我从Dimitris Tavlikos的回复中得到了对这个问题的答案:
如何在MonoTouch中将本地图像的内容读入base64字符串
从那个答案中,我了解到如果你包含一个System.Linq
引用,那么NSData
对象将有一个ToArray()
方法,该方法将返回一个字节数组。因此,在引用这个命名空间后,您可以执行以下操作:
bytes[] dataBytes = data.ToArray();
希望这些信息能对其他人有所帮助。
ToArray
方法的性能不佳。也许这是 Monotouch 的某个人可以研究和纠正的问题。感谢您的评论。 - BruceHillTimo的回答作为扩展方法:
public static byte[] ToByteArray (this NSData data) {
var dataBytes = new byte[data.Length];
System.Runtime.InteropServices.Marshal.Copy(data.Bytes, dataBytes, 0, Convert.ToInt32(data.Length));
return dataBytes;
}