如何将QR码图像传递给Apple Watch

时间:2019-02-13 06:51:01

标签: ios xamarin.forms watchkit apple-watch

我有一个使用zxing创建的格式为xamarin.forms.image的QR码图像。  我的要求是在Apple Watch上显示此QR码。该图像将保存到如下所示的全局变量中

stackQRCode.Children.Add(zXingBarcodeImageView);
 App.QRCodeImage = zXingBarcodeImageView

我正在尝试使用wcsessionmanager。但是在UpdateApplicationContext中,图像未发送。 有解决方案的人吗?最简单的方法是什么?谢谢。

1 个答案:

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