c# ZXing 二维码 支持中文

public class QRCode
    {
        public static Bitmap QR(string content)
        {
            Dictionary<EncodeHintType, object> hints = new Dictionary<EncodeHintType, object>();
            hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");//解决中文异常
            QRCodeWriter writer = new QRCodeWriter();
            BitMatrix matrix= writer.encode(content, BarcodeFormat.QR_CODE, 300, 300,hints);
            Bitmap m = toBitmap(matrix);
            //m.Save("d:\\a.tif", ImageFormat.Tiff);
            return m;
        }
        public static Bitmap toBitmap(BitMatrix matrix)
        {
            int width = matrix.Width;
            int height = matrix.Height;
            Bitmap bmap = new Bitmap(width, height, PixelFormat.Format32bppArgb);
            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    bmap.SetPixel(x, y,matrix[x, y]? ColorTranslator.FromHtml("0xFF000000") : ColorTranslator.FromHtml("0xFFFFFFFF"));
                }
            }
            return bmap;
        }
        public static byte[] BitmapToBytes(Bitmap Bitmap)
        {
            MemoryStream ms = null;
            try
            {
                ms = new MemoryStream();
                Bitmap.Save(ms,ImageFormat.Tiff);
                byte[] byteImage = new Byte[ms.Length];
                byteImage = ms.ToArray();
                return byteImage;
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }
            finally
            {
                ms.Close();
            }
        }
    }
public IActionResult Get()
        {
            try
            {
                var m = QRCode.QR("返回二维码测试文本!!!!");
                var n = QRCode.BitmapToBytes(m);
                new FileExtensionContentTypeProvider().Mappings.TryGetValue(".tif", out var contenttype);
                return File(n, contenttype, "qr.tif");
            }
            catch (Exception e)
            {
                return Ok(e.Message);
            }
        }

可通过此api下载二维码文件,支持中文

需要安装ZXing.Net,我的版本0.16.5

原文地址:https://www.cnblogs.com/huanyun/p/11698424.html

时间: 2024-10-09 19:48:37

c# ZXing 二维码 支持中文的相关文章

Qrcode生成二维码支持中文,带图片,带文字

1.下载Qrcode库源码, 下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library2.打开源码时, 部分类库可能会加载失败, 不用理会, 只需正常加载 QRCodeLib, QRCodeSampleApp 即可.3.生成时, 会提示编译出错, Error'ThoughtWorks.QRCode.Properties.Resources' does not contain a definition for

c# 二维码支持中文

/// <summary> /// 生成二维码,保存成图片 /// </summary> static void Generate1(string text) { BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; QrCodeEncodingOptions options = new QrCodeEncodingOptions(); options.DisableEC

Barcode修改二维码对中文的支持

Barcode2011版本, 在UnicodeIDE环境下原本二维码处理中文时有问题, 只读取了第一个字节转换, 所以中文会出错 修改psCodeStudio.pas文件,TpsQRCode.EncodePart函数 function TpsQRCode.EncodePart(const ToEncode:String; currMode: TpsQRMode):String; var i, j, k: integer; s, s1: String; k1, k2: integer; c: Ch

Android项目实战(二十八):Zxing二维码实现及优化

原文:Android项目实战(二十八):Zxing二维码实现及优化 前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中我们也许只会用到二维码的扫描和生成两个功能,所以不必下载完整的jar包,使用简化版的即可,下文可见. 这篇文章讲述:1.如果快速在项目中集成zxing,实现扫描和生成二维码功能 2.根据项目需求去修改源码实现我们的要求并进行优化 一.快速集成zxing二维码 1.下载库文件 : http://do

Android项目实战(四十四):Zxing二维码切换横屏扫描

原文:Android项目实战(四十四):Zxing二维码切换横屏扫描 Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=".CaptureActivity" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> 这时候扫描

zxing二维码生成工具类

图片生成工具生成 1.支持多中形式的图片,二维码,条形码 2.支持一张图片多个二维码 3.支持二维码图片上加logo 4.支持图片头部底部添加文字描述 public class ZxingEncoderUtil { private static final String CHARSET = "utf-8"; private static final String FORMAT = "JPG"; private static Font font = null; /**

ZXing 二维码应用

1.导入zxing代码和包 2.下面的类是解析二维码的主要类. package com.gaint.nebula.interaction.ui.zxing; import java.io.IOException; import java.util.Vector; import android.app.Activity; import android.content.Intent; import android.content.res.AssetFileDescriptor; import and

Android之zxing二维码生成与识别

二维码: 是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的: 在代码编制上巧妙的利用构成计算机内部逻辑基础的0和1比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理: 二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息: 二维码相对于条形码的优势就是省空间:   zxing简介: zxing是一个开放源码的,用java实现的多种格式的1D/2D条码图像处

教你移植Zxing二维码,兼容Android6.0

几天的移植历程,以下是不断完善的过程 好多图片啊 解压出来文件目录如下,其中core为zxing的解码库,可以单独导入eclipse生成jar:android文件夹是整个安卓的核心,打开摄像头之类的都在此进行,android-core内面只有一个java文件,用来配置摄像头. 我并没有把core的文件都生成jar,因为直接放入Android studo也是毫无问题的,我把文件做成了一个库.在库中资源文件的id号不能用(反正不让我编译),直接换成静态int值算了.还有菜单都会报一些错的,不过没关系