mirror of https://github.com/2dust/v2rayN
Refactor QRCodeHelper
parent
54c16cad7d
commit
6721d150e0
|
@ -0,0 +1,15 @@
|
|||
using QRCoder;
|
||||
|
||||
namespace ServiceLib.Common
|
||||
{
|
||||
public class QRCodeHelper
|
||||
{
|
||||
public static byte[]? GenQRCode(string? url)
|
||||
{
|
||||
using QRCodeGenerator qrGenerator = new();
|
||||
using QRCodeData qrCodeData = qrGenerator.CreateQrCode(url ?? string.Empty, QRCodeGenerator.ECCLevel.Q);
|
||||
using PngByteQRCode qrCode = new(qrCodeData);
|
||||
return qrCode.GetGraphic(20);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,6 +13,7 @@
|
|||
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
|
||||
<PackageReference Include="Splat.NLog" Version="15.1.1" />
|
||||
<PackageReference Include="YamlDotNet" Version="16.0.0" />
|
||||
<PackageReference Include="QRCoder" Version="1.6.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
using QRCoder;
|
||||
using QRCoder.Xaml;
|
||||
using System.Drawing;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using ZXing;
|
||||
using ZXing.Common;
|
||||
using ZXing.QrCode;
|
||||
|
@ -16,7 +16,7 @@ namespace v2rayN
|
|||
/// </summary>
|
||||
public class QRCodeHelper
|
||||
{
|
||||
public static DrawingImage? GetQRCode(string? strContent)
|
||||
public static ImageSource? GetQRCode(string? strContent)
|
||||
{
|
||||
if (strContent is null)
|
||||
{
|
||||
|
@ -24,11 +24,12 @@ namespace v2rayN
|
|||
}
|
||||
try
|
||||
{
|
||||
QRCodeGenerator qrGenerator = new();
|
||||
QRCodeData qrCodeData = qrGenerator.CreateQrCode(strContent, QRCodeGenerator.ECCLevel.H);
|
||||
XamlQRCode qrCode = new(qrCodeData);
|
||||
DrawingImage qrCodeAsXaml = qrCode.GetGraphic(40);
|
||||
return qrCodeAsXaml;
|
||||
var qrCodeImage = ServiceLib.Common.QRCodeHelper.GenQRCode(strContent);
|
||||
if (qrCodeImage is null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return ByteToImage(qrCodeImage);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
@ -36,6 +37,19 @@ namespace v2rayN
|
|||
}
|
||||
}
|
||||
|
||||
private static ImageSource ByteToImage(byte[] imageData)
|
||||
{
|
||||
BitmapImage biImg = new();
|
||||
MemoryStream ms = new(imageData);
|
||||
biImg.BeginInit();
|
||||
biImg.StreamSource = ms;
|
||||
biImg.EndInit();
|
||||
|
||||
ImageSource imgSrc = biImg as ImageSource;
|
||||
|
||||
return imgSrc;
|
||||
}
|
||||
|
||||
public static string ScanScreen(float dpiX, float dpiY)
|
||||
{
|
||||
try
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="MaterialDesignThemes" Version="5.1.0" />
|
||||
<PackageReference Include="H.NotifyIcon.Wpf" Version="2.1.2" />
|
||||
<PackageReference Include="QRCoder.Xaml" Version="1.6.0" />
|
||||
<PackageReference Include="TaskScheduler" Version="2.11.0" />
|
||||
<PackageReference Include="ZXing.Net.Bindings.Windows.Compatibility" Version="0.16.12" />
|
||||
<PackageReference Include="ReactiveUI.Fody" Version="19.5.41" />
|
||||
|
|
Loading…
Reference in New Issue