Как я могу передать изображение QR-кода яблочным часам? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть изображение QR-кода в формате xamarin.forms.image, созданное с помощью zxing.Мое требование - показать этот QR-код на яблочных часах.это изображение сохраняется в глобальной переменной, как показано ниже:

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

Я пытаюсь использовать wcsessionmanager. Но в UpdateApplicationContext изображение не отправляется.кто-нибудь с решением?Какой самый простой способ добиться этого? Заранее спасибо.

1 Ответ

0 голосов
/ 13 февраля 2019

Самым простым способом преобразования изображения форм Xamarin в UIImage и наоборот было бы преобразование байтов []:

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.Forms Image / ImageSource не предоставляют никаких API для прямого полученияпоток изображения или байт [] из него. (Насколько мне известно)

Таким образом, вы можете использовать FFImageLoading взамен !!

Имеет API для получения RawImage следующим образом:

FFImageLaoding в байт []:

var bytes = await ImageView.GetImageAsJpgAsync(); //png method also available

байт [] вUIImage

 var data = NSData.FromArray(byteData);
 var uiimage = UIImage.LoadFromData(data);
...