我有一个使用zxing创建的格式为xamarin.forms.image的QR码图像。 我的要求是在Apple Watch上显示此QR码。该图像将保存到如下所示的全局变量中
stackQRCode.Children.Add(zXingBarcodeImageView);
App.QRCodeImage = zXingBarcodeImageView
我正在尝试使用wcsessionmanager。但是在UpdateApplicationContext中,图像未发送。 有解决方案的人吗?最简单的方法是什么?谢谢。
答案 0 :(得分:1)
将Xamarin Forms Image转换为UIImage以及反之亦然的最简单方法是byte []转换:
UIImage到字节[]:
byte[] byteArray;
using (NSData imageData = originalImage.AsJPEG())
{
byteArray = new Byte[imageData.Length];
System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, byteArray, 0, Convert.ToInt32(imageData.Length));
}
Byte []到Xamarin.Forms.ImageSource:
var XamImageSource=ImageSource.FromStream(() => new MemoryStream
(byteArray));
现在,Xamarin遇到了另一种麻烦。FormsImage / ImageSource不会公开任何API来直接从中获取图像流或字节[]。(据我所知)
因此您可以改用FFImageLoading!
哪个具有如下API来获取RawImage
FFImageLaoding到字节[]:
var bytes = await ImageView.GetImageAsJpgAsync(); //png method also available
byte []到UIImage
var data = NSData.FromArray(byteData);
var uiimage = UIImage.LoadFromData(data);