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
It's been a long time since I checked the ServiceStack API but, if possible, try to avoid byte[]
since it will need to create another copy of the same data. It does not matter in many cases but images are often huge.
E.g. if there's an overload that accept a System.IO.Stream
then use image.AsPNG ().AsStream ()
and avoid the overhead :-)
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));
}
Stream pst = img.AsPNG().AsStream();