嘿我在ZXingBarcodeImageView中生成了图像我希望将其转换为ImageSource,这样我就可以在xaml中绑定Image,如何实现这一点,美好的一天,谢谢你
public class GenerateCode: IGenerateCode
{
ZXingBarcodeImageView barcode;
public ImageSource GenerateQr(string code)
{
barcode = new ZXingBarcodeImageView
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
};
barcode.BarcodeFormat = ZXing.BarcodeFormat.QR_CODE;
barcode.BarcodeOptions.Width = 100;
barcode.BarcodeOptions.Height = 100;
barcode.BarcodeOptions.Margin = 10;
barcode.BarcodeValue = code;
return barcode; error as barcode is an image
}
}
<Image Source={Binding imgSource} />
答案 0 :(得分:0)
我假设您正在使用特定于平台的组件来生成图像。该组件将生成的图像存储到文件系统中,或者在内存中返回二进制表示。
要将文件转换为ImageSource
,您可以使用ImageSource.FromFile()
。要转换流,请使用ImageSource.FromStream()
。
在上面的例子中,BindingContext
(无论该页面或ViewModel无关紧要)都必须公开类型为ImageSource
的公共属性,并使用其中任何一个返回转换后的图像以上方法。
答案 1 :(得分:0)
类ZXingBarcodeImageView
不会公开ImageSource
属性,因为它意味着使用而不是 Image
。您可以将其放在XAML或C#中。
例如:
XAML:
<!-- this goes in your root node -->
<!-- xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms" -->
<zxing:ZXingBarcodeImageView BarcodeValue="{Binding Code}" BarcodeFormat="QR_CODE" BarcodeOptions="{Binding Options}" />
C#后端:
protected override void OnAppearing()
{
BindingContext = new
{
Code = code;
Options = new EncodingOptions()
{
Width = 100,
Height = 100,
Margin = 10,
}
};
}