
рдмрд╛рд░рдХреЛрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ / рд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп
ZXing рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдпрд╣ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ: рдХреНрдпреВрдЖрд░рдХреЛрдб, рдПрдЬрд╝реНрдЯреЗрдХ рдФрд░ рдЕрдиреНрдп, 2 рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХред рдХреЛрдб рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рддреИрдпрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг ZXingScannerView рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХреЛрдб рдХреЛ рдХреИрдиреЛрдирд┐рдХ рд░реВрдк рд╕реЗ, рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрд╕ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо-рд▓реБрдХрд┐рдВрдЧ рдХреЛрдб рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рдВрдЧреАрди, рдЧреЛрд▓ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ (рдФрд░ рддрд╛рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХреЗ)ред
рдФрд░ рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рддрднреА рдЦреБрд▓рддреА рд╣реИ рдЬрдм рдЖрдк рдЦреБрдж рдХреЛ рдХреЛрдб рдмрдирд╛рддреЗ рд╣реИрдВ - рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд╣реИред рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рд╣рдо рдПрдХ рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд░реЗрдВрдЧреЗред
рд╕рдорд╛рдкреНрдд рдЖрд╡реЗрджрди рдпрд╣рд╛рдБ рд╣реИ редрдпрд╣ рдЖрд▓реЗрдЦ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓реЗрдЦ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
QR рдХреЛрдб рдкреАрдврд╝реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо ,
SkiaSharp рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреНрд░рд╛рдЗрдВрдЧ
рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рд╕рдЬрд╛рд╡рдЯреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ QR рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдПрдХ png рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдЪреМрд░рд╕рд╛рдИ рд▓рд╛рдЗрдиреЗрдВ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг
рдПрдХ рдЦрд╛рд▓реА Xamarin.Forms рдЖрд╡реЗрджрди рдмрдирд╛рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред "рдореЛрдмрд╛рдЗрд▓ рдРрдк (Xamarin.Forms)" рдЬреИрд╕реЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдлрд┐рд░ "рдмреНрд▓реИрдВрдХ" рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪреБрдиреЗрдВред "рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдХрд┐рд╕реА рднреА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, SkiaSharp рдХрдИ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдЖрдИрдУрдПрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
.Android рдФрд░ .iOS рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ:
рджреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд┐рддреНрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ - рдПрдХ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ QR рдХреЛрдб рдХреЗ рд▓рд┐рдПред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ "рдПрдХреНрд╢рди рдмрд┐рд▓реНрдб" "рдПрдВрдмреЗрдбреЗрдб рд╕рдВрд╕рд╛рдзрди" рд╣реИред
рдЖрдЙрдЯрдкреБрдЯ MainPage.xaml рдФрд░ MainPage.xaml.cs рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИ
Xaml рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ImageResourceExtension рд╡рд░реНрдЧред
рд╕рднреА рддрд░реНрдХ QRCodeEncoder рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реИред рдпрд╣ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:
- рдПрдирдХреЛрдбрд░ - рдПрдХ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд▓реЛрдЧреЛрдВ рдФрд░ рд╢реВрдиреНрдп рдХреЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдПрдирдХреЛрдб рдХрд░реЗрдВ
- рд░реЗрдВрдбрд░рд░ - рдкрд░рд┐рдгрд╛рдореА рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░рдЦреЗрдВ, рдУрд╡рд░рд╣реЗрдб рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдПрдВ
QR рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХреЗрдВ рд╣реИрдВред рд╡реЗ рд╕рдм рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ, рд▓реЗрдЦ "рдХреНрдпреВрдЖрд░ рдХреЛрдб рдкреАрдврд╝реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо" (рдКрдкрд░ рджреЗрдЦреЗрдВ) рджреЗрдЦреЗрдВред
рдХрд╛рдВрдЬреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ (рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП) рдЖрд╡реЗрджрди рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред
SkiaSharp
SkiaSharp .NET рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо 2D рдбреНрд░рд╛рдЗрдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдпрд╣ Google рдХреА
Skia Graphics рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред NuGet рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз:
nuget install SkiaSharp
Microsoft рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг:
рдЬрд╝рд╛рдорд░реАрди рдореЗрдВ SkiaSharp.ormsрд╕рднреА рдбреНрд░рд╛рдЗрдВрдЧ рд░реЗрдВрдбрд░рд░ рд╡рд░реНрдЧ рдХреЗ рдбреНрд░рд╛ рд╡рд┐рдзрд┐ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рддрддреНрд╡ рдЧреЛрд▓ рд╣реИрдВ, рдХреБрдЫ рд╡рд░реНрдЧ рд╣реИрдВ:
canvas.DrawCircle() canvas.DrawRect()
рдХреБрдЫ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ:
var paint1 = new SKPaint { IsAntialias = true, Style = SKPaintStyle.Fill, Color = SKColors.DeepSkyBlue }; var paint2 = new SKPaint { IsAntialias = true, Style = SKPaintStyle.Fill, Color = SKColors.Red }; var paint3 = new SKPaint { IsAntialias = true, Style = SKPaintStyle.Fill, Color = SKColors.Gold };
рдФрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрд╕рдиреНрди рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХреЛ рдХреИрд╕реЗ рд╕реБрдЪрд╛рд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЙрджрд╛рд╣рд░рдг
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг:





