Converting UIImage to Byte Array

Yahiko Kikikoto picture Yahiko Kikikoto · Jun 14, 2013 · Viewed 17.3k times · Source

I need to convert a UIImage to a byte array. I am using Xamarin's Visual Studio plugin to produce an iOS application.

The bit of code below gets the image, but I need to send it across a Service Stack as a byte array instead of a UIImage.

        var signatureView = new SignaturePad.SignaturePadView(new RectangleF(10, 660, 300, 150));
        signatureView.BackgroundColor = UIColor.White;
        this.View.AddSubview(signatureView);
        UIImage signatureImage = signatureView.GetImage();

Answer

Jason picture Jason · Jun 14, 2013

Shamelessly stolen from ChrisNTR

using (NSData imageData = image.AsPNG()) {
  Byte[] myByteArray = new Byte[imageData.Length];
  System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, myByteArray, 0, Convert.ToInt32(imageData.Length));
}