Подтвердить что ты не робот

Как перейти из NSData в байт []

Если у меня есть данные изображения в NSData, извлеченные из образа следующим образом, как мне преобразовать этот объект NSData в массив байтов?

NSData data = NSData.FromUrl(NSUrl.FromString(urlString));
4b9b3361

Ответ 1

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));

Ответ 2

Я получил ответ на этот вопрос из ответа Димитриса Тавликоса на этот вопрос, который я задал:

Как прочитать содержимое локального изображения в строку base64 в MonoTouch

Из этого ответа я узнал, что если вы включите ссылку System.Linq, то объект NSData будет иметь метод ToArray(), который вернет массив байтов. Таким образом, с помощью указанного пространства имен вы можете сделать следующее:

bytes[] dataBytes = data.ToArray();

Надеюсь, эта информация поможет кому-то еще.

Ответ 3

Timo отвечает как метод расширения:

    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;
    }