鹤岗建设局网站,去海南注册公司需要什么条件,wordpress化妆品主题,网站制作手机模板推荐一个跨平台的非常流行的条码库#xff0c;方便我们在.Net项目集成条码扫描和生成功能。
01 项目简介
ZXing.Net是ZXing的.Net版本的开源库。支持跨多个平台工作#xff0c;包括 Windows、Linux 和 macOS#xff0c;以及在 .NET Core 和 .NET Framework 上运行。
解码…推荐一个跨平台的非常流行的条码库方便我们在.Net项目集成条码扫描和生成功能。
01 项目简介
ZXing.Net是ZXing的.Net版本的开源库。支持跨多个平台工作包括 Windows、Linux 和 macOS以及在 .NET Core 和 .NET Framework 上运行。
解码器支持以下条形码UPC-A、UPC-E、EAN-8、EAN-13、Code 39、Code 93、Code 128、ITF、Codabar、MSI、RSS-14所有变体、QR Code、Data Matrix、Aztec和PDF-417。
编码器支持以下格式UPC-A、EAN-8、EAN-13、Code 39、Code 128、ITF、Codabar、Plessey、MSI、QR Code、PDF-417、Aztec、Data Matrix
支持.Net 2.0、UWP、Unity3D、Xamarin.Android、支持COM互操作可与VBA一起使用。
02 使用示例
1、安装依赖库
Install-Package ZXing.Net2、生成二维码
using ZXing;
using ZXing.QrCode;
using ZXing.Rendering;
using static ZXing.Rendering.SvgRenderer;// 创建一个编码器实例
var writer new BarcodeWriterSvgImage()
{Format BarcodeFormat.QR_CODE, // 设置条码格式为 QR_CODEOptions new QrCodeEncodingOptions{Height 250, // 设置 QR 码的高度Width 250 // 设置 QR 码的宽度},Renderer new SvgRenderer()
};// 指定要编码的文本
string encodedData https://www.example.com;//生成二维码
var svg writer.Write(encodedData);
File.WriteAllText(qrCode.svg, svg.Content);在浏览器打开效果如下 3、识别二维码
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
using ZXing;FuncImage, LuminanceSource createLuminanceSource _image CreateLuminanceSourceFromMyImageType(_image);
var reader new BarcodeReaderImage(createLuminanceSource);
var image Image.FromFile(f:/qrcode.jpg);
var result reader.Decode(image);
Console.WriteLine(result); /// summary
/// 图片转换
/// /summary
/// param nameimage/param
/// returns/returns
LuminanceSource CreateLuminanceSourceFromMyImageType(Image image)
{// 转换为Bitmap以便可以访问像素数据 Bitmap bitmap image as Bitmap ?? new Bitmap(image);// 锁定位图的内存区域以获取原始图像数据 Rectangle rect new Rectangle(0, 0, bitmap.Width, bitmap.Height);BitmapData bitmapData bitmap.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);// 计算需要的字节数组大小每像素3字节R, G, B int bytes bitmapData.Stride * bitmap.Height;byte[] rgbRawBytes new byte[bytes];// 将原始图像数据复制到数组中 Marshal.Copy(bitmapData.Scan0, rgbRawBytes, 0, bytes);// 解锁位图的内存区域 bitmap.UnlockBits(bitmapData);// 释放Bitmap资源如果它不是传入的原始Image if (bitmap ! image){bitmap.Dispose();}return new RGBLuminanceSource(rgbRawBytes, image.Width, image.Height);
}效果如下 03 项目地址
https://github.com/micjahn/ZXing.Net
- End -
更多开源项目 https://github.com/bianchenglequ/NetCodeTop 我是编程乐趣一个.Net开发经验老程序员欢迎“关注”我每天为你分享开源项目和编程知识。 也欢迎加入【.Net技术编程交流社区】和大家共同学习交流点击加入https://bbs.csdn.net/topics/613465368 推荐阅读
AutoFixture.NET 的假数据生成工具
Coravel一个可轻松实现任务调度、队列、邮件发送的开源项目
Plotly.NET一个强大的、漂亮的.NET开源交互式图表库
OxyPlot一个功能强大、漂亮.Net跨平台开源绘图库
NodaTime一个.NET开源的强大日期和时间库