不啰嗦,直接上代码
byte[]转UIImage
在Xamarin.iOS项目中用。
public UIImage bytesToUIImage(byte[] data){
if (data == null) return null;
GCHandle hObject = GCHandle.Alloc(data, GCHandleType.Pinned);
IntPtr pObject = hObject.AddrOfPinnedObject();
NSData nsdata = NSData.FromBytes(pObject, (System.nuint)data.Length);
UIImage image = UIImage.LoadFromData(nsdata);
if (hObject.IsAllocated)
hObject.Free();
return image;
} catch (Exception e) {
}
return null;
}
byte[]转Image
在Xamarin.Form中用。
public Image bytesToImage(byte[] data){
var image = new Image();
image.Source = ImageSource.FromStream(() => new MemoryStream(data));
return image;
}
Stream转byte[]
这个方法哪都能用,所以顺便贴出来。
public byte[] StreamTobytes(Stream stream){
byte[] result;
using (var memoryStream = new System.IO.MemoryStream()) {
stream.CopyTo(memoryStream);
result = memoryStream.ToArray();
}
return result;
}