我正在使用QrCode.Net库版本0.3,我需要使用Gma.QrCodeNet.Encoding.Windows.Render
来创建qrcodeISizeCalculation的图像,但是我遗漏了一些东西,或者还有其他版本。有什么问题吗?
不管怎样,我为有同样问题的人找到了一个解决方案,他们想用同样的固定大小创建图像。代码如下:
private void gen_qr_file(string file_name, string content, int image_size)
{
string new_file_name = file_name;
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
QrCode qrCode = new QrCode();
qrEncoder.TryEncode(content, out qrCode);
Renderer renderer = new Renderer(image_size, Brushes.Black, Brushes.White);
MemoryStream ms = new MemoryStream();
renderer.WriteToStream(qrCode.Matrix, ms, ImageFormat.Png);
var image = new Bitmap(Image.FromStream(ms), new Size(new Point(200, 200)));
image.Save(new_file_name + ".png", ImageFormat.Png);
}
这将生成带有qrcode的200x200像素的png图像。
库本身有一个方法来完成这项工作,但是我需要包含渲染内容,而我不能。有人知道问题出在哪里吗?
最佳答案
private void gen_qr_file(string file_name, string content, int image_size) {
string new_file_name = file_name;
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
QrCode qrCode = new QrCode();
qrEncoder.TryEncode(content, out qrCode);
Renderer renderer = new Renderer(image_size, Brushes.Black, Brushes.White);
MemoryStream ms = new MemoryStream();
renderer.WriteToStream(qrCode.Matrix, ms, ImageFormat.Png);
var imageTemp = new Bitmap(ms);
var image = new Bitmap(imageTemp, new Size(new Point(image_size, image_size)));
image.Save(new_file_name + ".png", ImageFormat.Png);
}
注:仅修改2行。我希望它能帮助别人。