|
- using Shadowsocks.Properties;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.IO;
- using System.IO.Compression;
- using System.Text;
- using System.Windows.Forms;
-
- namespace Shadowsocks.View
- {
- public partial class QRCodeForm : Form
- {
- private string code;
-
- public QRCodeForm(string code)
- {
- this.code = code;
- InitializeComponent();
- }
-
- private string QRCodeHTML(string ssURL)
- {
- string html = Resources.qrcode;
- string qrcodeLib;
-
- byte[] qrcodeGZ = Resources.qrcode_min_js;
- byte[] buffer = new byte[1024 * 1024]; // builtin pac gzip size: maximum 1M
- int n;
-
- using (GZipStream input = new GZipStream(new MemoryStream(qrcodeGZ),
- CompressionMode.Decompress, false))
- {
- n = input.Read(buffer, 0, buffer.Length);
- if (n == 0)
- {
- throw new IOException("can not decompress qrcode lib");
- }
- qrcodeLib = System.Text.Encoding.UTF8.GetString(buffer, 0, n);
- }
- string result = html.Replace("__QRCODELIB__", qrcodeLib);
- return result.Replace("__SSURL__", ssURL);
- }
-
- private void QRCodeForm_Load(object sender, EventArgs e)
- {
- QRCodeWebBrowser.DocumentText = QRCodeHTML(code);
- }
- }
- }
|