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="sqlite-net-pcl" Version="1.9.172" />
|
||||||
<PackageReference Include="Splat.NLog" Version="15.1.1" />
|
<PackageReference Include="Splat.NLog" Version="15.1.1" />
|
||||||
<PackageReference Include="YamlDotNet" Version="16.0.0" />
|
<PackageReference Include="YamlDotNet" Version="16.0.0" />
|
||||||
|
<PackageReference Include="QRCoder" Version="1.6.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
using QRCoder;
|
using System.Drawing;
|
||||||
using QRCoder.Xaml;
|
using System.IO;
|
||||||
using System.Drawing;
|
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Interop;
|
using System.Windows.Interop;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
using ZXing;
|
using ZXing;
|
||||||
using ZXing.Common;
|
using ZXing.Common;
|
||||||
using ZXing.QrCode;
|
using ZXing.QrCode;
|
||||||
|
@ -16,7 +16,7 @@ namespace v2rayN
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class QRCodeHelper
|
public class QRCodeHelper
|
||||||
{
|
{
|
||||||
public static DrawingImage? GetQRCode(string? strContent)
|
public static ImageSource? GetQRCode(string? strContent)
|
||||||
{
|
{
|
||||||
if (strContent is null)
|
if (strContent is null)
|
||||||
{
|
{
|
||||||
|
@ -24,11 +24,12 @@ namespace v2rayN
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
QRCodeGenerator qrGenerator = new();
|
var qrCodeImage = ServiceLib.Common.QRCodeHelper.GenQRCode(strContent);
|
||||||
QRCodeData qrCodeData = qrGenerator.CreateQrCode(strContent, QRCodeGenerator.ECCLevel.H);
|
if (qrCodeImage is null)
|
||||||
XamlQRCode qrCode = new(qrCodeData);
|
{
|
||||||
DrawingImage qrCodeAsXaml = qrCode.GetGraphic(40);
|
return null;
|
||||||
return qrCodeAsXaml;
|
}
|
||||||
|
return ByteToImage(qrCodeImage);
|
||||||
}
|
}
|
||||||
catch
|
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)
|
public static string ScanScreen(float dpiX, float dpiY)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MaterialDesignThemes" Version="5.1.0" />
|
<PackageReference Include="MaterialDesignThemes" Version="5.1.0" />
|
||||||
<PackageReference Include="H.NotifyIcon.Wpf" Version="2.1.2" />
|
<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="TaskScheduler" Version="2.11.0" />
|
||||||
<PackageReference Include="ZXing.Net.Bindings.Windows.Compatibility" Version="0.16.12" />
|
<PackageReference Include="ZXing.Net.Bindings.Windows.Compatibility" Version="0.16.12" />
|
||||||
<PackageReference Include="ReactiveUI.Fody" Version="19.5.41" />
|
<PackageReference Include="ReactiveUI.Fody" Version="19.5.41" />
|
||||||
|
|
Loading…
Reference in New Issue