Tôi đang sử dụng ZXing để tạo mã QR. Đây là những gì mã của tôi trông giống như:Làm thế nào để thiết lập kích thước của bitmap trong ZXing?
public partial class QRPage : ContentPage
{
public QRPage()
{
InitializeComponent();
var stream = DependencyService.Get<IBarcodeService>().ConvertImageStream("nika");
qrImage.Source = ImageSource.FromStream(() => { return stream; });
qrImage.HeightRequest = 200;
}
}
Và phần khác:
[assembly: Xamarin.Forms.Dependency(typeof(BarcodeService))]
namespace MyApp.Droid
{
public class BarcodeService : IBarcodeService
{
public Stream ConvertImageStream(string text, int width = 500, int height = 500)
{
var barcodeWriter = new ZXing.Mobile.BarcodeWriter
{
Format = ZXing.BarcodeFormat.QR_CODE,
Options = new ZXing.Common.EncodingOptions
{
Width = width,
Height = height,
Margin = 2
}
};
barcodeWriter.Renderer = new ZXing.Mobile.BitmapRenderer();
var bitmap = barcodeWriter.Write(text);
var stream = new MemoryStream();
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, stream);
stream.Position = 0;
return stream;
}
}
}
Đây là XAML nơi tôi đang sử dụng mã:
<StackLayout Padding="20,30,20,30">
<Label Text="..." FontSize="Medium "/>
<Frame VerticalOptions="CenterAndExpand">
<Image x:Name="qrImage" WidthRequest="300" />
</Frame>
...
</StackLayout>
Vấn đề là, cho dù tôi đặt chiều cao và chiều rộng cho ConvertImageStream
là gì, hình ảnh kết quả không phải là hình vuông, nhưng trông giống như sau:
Làm cách nào để biến nó thành hình vuông? Cảm ơn trước.
bất kỳ đề xuất về lý do tại sao nó trông giống như những gì tôi đã đăng trong ứng dụng của tôi? – nicks
@NikaGamkrelidze Bạn có thể đăng xaml (hoặc mã) của bạn cho trang đó trong câu hỏi của bạn hay thử mã trang trong câu trả lời của tôi trước để xem bạn có nhận được kết quả tương tự như mình không ... – SushiHangover
vui lòng xem chỉnh sửa cho mã XAML – nicks