精华内容
下载资源
问答
  • 扫描二维码条形码生成二维码条形码, 灵敏快速 生成任意颜色二维码 生成中间带图片的二维码 没有用到三方类库ZXing 和 ZBar 喜欢的朋友可以下载学习交流 邮箱:ioszhaoyi@163.com
  • C#编写的实现条形码和QR二维码读取和生成的类库。支持读取QR Code,Aztec Code,Data Matrix,MaxiCode,USPS OneCode,IM Barcode; SharpBarcode也支持Code93,Code129,PDF417,Rss14,GS1,UPC-A,UPC-E,EAN-8,EAN-13,...
  • zxing 仿微信二维码生成以及条形码生成.
  • Java 生成二维码 / 条形码生成二维码生成条形码barcode4j 生成条形码JBarcode 生成条形码 生成二维码 用到的 jar 包: 代码示例: import java.awt.Color; import java.awt.image.BufferedImage; import java....

    本文用到的三个 jar 包,百度云自取 戳我

    生成二维码

    用到的 jar 包:core-3.3.3.jar
    注意:内容最多为 17 位,可以为数字、字母和各种特殊符号,不支持汉字。不超过最大长度时能生成二维码,但是扫的结果中汉字显示为?号。字母区分大小写
    代码示例:

    import java.awt.Color;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.imageio.ImageIO;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.QRCodeWriter;
    
    public class BarcodeCreateTest {
    	public static void main(String[] args) throws Exception {
    		createSquareCode("2_1xiao和-T%t@.com", new FileOutputStream(new File("E:\\xiao\\squarecode.png")));
    		System.out.println("succeed");
    	}
    
    	/**
    	 *   生成二维码
    	 * @param content 二维码内容
    	 * @param output 输出流/位置
    	 * @throws Exception
    	 */
    	public static void createSquareCode(String content, OutputStream output) throws Exception {
    		Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
    		hints.put(EncodeHintType.MARGIN, 0);
    		BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, 150, 150, hints);
    		// 去白边
    		int[] rec = bitMatrix.getEnclosingRectangle();
    		int resWidth = rec[2] + 1;
    		int resHeight = rec[3] + 1;
    		BitMatrix resMatrix = new BitMatrix(resWidth, resHeight);
    		resMatrix.clear();
    		for (int i = 0; i < resWidth; i++) {
    			for (int j = 0; j < resHeight; j++) {
    				if (bitMatrix.get(i + rec[0], j + rec[1])) {
    					resMatrix.set(i, j);
    				}
    			}
    		}
    		// 生成二维码
    		int width = resMatrix.getWidth();
    		int height = resMatrix.getHeight();
    		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    		for (int x = 0; x < width; x++) {
    			for (int y = 0; y < height; y++) {
    				image.setRGB(x, y, resMatrix.get(x, y) == true ? Color.BLACK.getRGB() : Color.WHITE.getRGB());
    			}
    		}
    		ImageIO.write(image, "png", output);
    		
    		output.close();
    	}
    }
    

    生成条形码

    barcode4j 生成条形码

    用到的 jar 包:barcode4j-light.jar
    注意:支持数字字母,我随便试了些特殊符号,支持 % - ,不支持@#$()和汉字等,如果输入了不支持的符号执行报错。生成的条形码的图中虽然显示小写字母,但扫描结果都是显示大写字母。
    内容长度似乎无限限制,但太长,就很难扫出结果了。

    代码示例:

    package barcodeCreate;
    
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    import org.krysalis.barcode4j.impl.code39.Code39Bean;
    import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider;
    import org.krysalis.barcode4j.tools.UnitConv;
    
    public class BarcodeCreateTest {
    
    	// 生成文件
    	public static File generateFile(String content, String path) {
    		File file = new File(path);
    		try {
    			generate(content, new FileOutputStream(file));
    		} catch (FileNotFoundException e) {
    			throw new RuntimeException(e);
    		}
    		return file;
    	}
    
    	// 生成字节
    	public static byte[] generate(String content) {
    		ByteArrayOutputStream ous = new ByteArrayOutputStream();
    		generate(content, ous);
    		return ous.toByteArray();
    	}
    
    	// 生成到流
    	public static void generate(String content, OutputStream ous) {
    
    		Code39Bean bean = new Code39Bean();
    		// 精细度
    		final int dpi = 150;
    		// module宽度
    		final double moduleWidth = UnitConv.in2mm(1.0f / dpi);
    
    		// 配置对象
    		bean.setModuleWidth(moduleWidth);
    		bean.setWideFactor(3);
    		bean.doQuietZone(false);
    
    		String format = "image/png";
    		try {
    			BitmapCanvasProvider canvas = new BitmapCanvasProvider(ous, format, dpi, 
    					BufferedImage.TYPE_BYTE_BINARY, false, 0);
    			// 生成条形码
    			bean.generateBarcode(canvas, content);
    			canvas.finish();
    		} catch (IOException e) {
    			throw new RuntimeException(e);
    		}
    	}
    
    	public static void main(String[] args) {
    		String content = "12345xia%ofand154985iujiftrkljoinkl$o6789-v1.0";
    		String path = "E:\\xiao\\test.png";
    		generateFile(content, path);
    		System.out.println("succeed");
    	}
    }
    

    JBarcode 生成条形码

    用到的 jar 包:jbarcode-0.2.8.jar
    注意:本文用的是 code128 编码,区分大小写,支持字母数字和各种特殊符号,不支持汉字,有不支持的符号是执行报错。内容太多能生成条形码,内容合法的话,但是太长就不好扫描结果了,至少我的手机没扫出来。

    代码示例:

    package barcodeCreate;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    import javax.imageio.ImageIO;
    
    import org.jbarcode.JBarcode;
    import org.jbarcode.encode.Code128Encoder;
    import org.jbarcode.paint.BaseLineTextPainter;
    import org.jbarcode.paint.EAN13TextPainter;
    import org.jbarcode.paint.WidthCodedPainter;
    
    public class BarcodeCreateTest {
    	/**
    	 * 128条形码
    	 * 
    	 * @param strBarCode  条形码
    	 * @param dimension  商品条形码:尺寸
    	 * @param barheight  商品条形码:高度
    	 * @return 图片(Base64编码)
    	 */
    	public static void generateBarCode128(String strBarCode, String dimension, String barheight, OutputStream ous) {
    
    		try {
    			BufferedImage bi;
    			// int len = strBarCode.length();
    			JBarcode productBarcode = new JBarcode(Code128Encoder.getInstance(), WidthCodedPainter.getInstance(),
    					EAN13TextPainter.getInstance());
    
    			// 尺寸,面积,大小 密集程度
    			productBarcode.setXDimension(Double.valueOf(dimension).doubleValue());
    			// 高度 10.0 = 1cm 默认1.5cm
    			productBarcode.setBarHeight(Double.valueOf(barheight).doubleValue());
    			// 宽度
    			productBarcode.setWideRatio(Double.valueOf(30).doubleValue());
    			// 是否显示字体
    			productBarcode.setShowText(true);
    			// 显示字体样式
    			productBarcode.setTextPainter(BaseLineTextPainter.getInstance());
    			// 生成条形码
    			bi = productBarcode.createBarcode(strBarCode);
    
    			ImageIO.write(bi, "jpg", ous);
    		} catch (Exception e) {
    			e.printStackTrace();
    			throw new RuntimeException(e);
    		}
    	}
    
    
    	public static void main(String[] args) throws IOException {
    		FileOutputStream opath = new FileOutputStream(new File("E:\\xiao\\barcode.jpg"));
    		generateBarCode128("Ar-$%*()_r53 78@#3", "0.5", "30", opath);
    		System.out.println("succeed");
    	}
    }
    
    展开全文
  • 这个demo主要实现了所有的有关二维码扫描、生成条形码扫描、生成以及一些自定义布局控件。做项目用到相关功能可以直接下载集成在项目中,不用更改任何东西。代码都是进过调试通过的。
  • 可以扫描二维码条形码,生成带logo的二维码,可以生成条形码
  • 集成了 二维码,条形码扫描,以及生成条形码二维码
  • java生成二维码条形码二维码条形码的解码2015年08月12日 15:26:31阅读数:6710首先,使用java生成二维码条形码需要ZXingZXing是一个开源Java类库用于解析多种格式的条形码二维码.官网:...
    展开全文
  • Excel插件《E灵》提供了二维码接口和条形码接口,您只需要一句代码调用接口就可以生成二维码,一句代码调用条形码接口就可以生成条形码。配合循环语句就可以批量生二维码或者条形码了。具体操作如下: 一:下载并...

    生产企业或者物流快递需要用到大量的二维码和条形码,但是要自行编写代码批量生成二维码或者条形码并不容易,涉及的知识面很广。
    Excel插件《E灵》提供了二维码接口和条形码接口,您只需要一句代码调用接口就可以生成二维码,一句代码调用条形码接口就可以生成条形码。配合循环语句就可以批量生二维码或者条形码了。具体操作如下:

    一:下载并安装插件 E灵,下载地址

    单击下载软件

    二:双击安装,安装成功以后打开Excel可以看到“E灵”选项卡

    E灵操作界面

    三:利用VBA调用二维码接口生成二维码

    调用E灵的二维码接口语法如下:
    Application.COMAddIns.Item("Eling").Object.ma "二维码内容",高度(单位:厘米) , 单元格, 边距(单位:磅)

    参数说明
    1.过程名称 Ma,完整书写方式是:Application.COMAddIns.Item("Eling").Object.ma
    2.它有四个参数,第一参数是生成二维码的值,文本格式,例如“中华人民共和国”或者Range(“a1”).value
    3.第二参数是二维码的存放位置,用单元格表示,例如Range(“b2”).
    4.第三参数是二维码的高度,以厘米为单位
    5.第四参数是二维码的边距,值为是0时表示靠边,值为2表示上边距为2(单位是磅)。

    代码举例
    1.用"20190325-24" 生成3厘米高的二维码,放在C3单元格中

    Sub 生成单个二维码()
      Application.COMAddIns.Item("Eling").Object.ma "20190325-24", 3, Range("c3"), 2
    End Sub
    

    2.用订单号码、型体名称、单位和数量批量生成二码

    Sub 批量生成二维码()
      Dim cell As Range, RowItem As Integer, Mysrt As String, Eling As Object
      Set Eling = Application.COMAddIns.Item("Eling").Object
      Application.ScreenUpdating = False
      With Range("a2:d10") '根据自己的情况修改范围
        For RowItem = 1 To .Rows.Count
          Mysrt = ""
          For Each cell In .Rows(RowItem).Cells
           If Len(cell.Value) > 0 Then Mysrt = Mysrt & "," & cell.Value
          Next cell
          Eling.ma Mid(Mysrt, 2, 999), 1.5, Cells(RowItem + 1, "E"), 2
        Next RowItem
        Application.ScreenUpdating = True
        MsgBox "生成完毕,一共" & .Rows.Count & "个二维码", vbOKOnly, "提示"
      End With
    End Sub
    

    3.用订单号码、型体名称、单位和数量批量生成二维码

    Sub 批量生成含标题的二维码()
      Dim cell As Range, RowItem As Integer, ColCount As Byte, Mysrt As String, Eling As Object
      Set Eling = Application.COMAddIns.Item("Eling").Object
      Application.ScreenUpdating = False
      With Range("a2:d10") '根据自己的情况修改范围
        For RowItem = 1 To .Rows.Count
          Mysrt = "": ColCount = 0
          For Each cell In .Rows(RowItem).Cells
            ColCount = ColCount + 1
            Mysrt = Mysrt & vbCrLf & Cells(1, ColCount) & ":" & cell.Value
          Next cell
          Eling.ma Mid(Mysrt, 3, 999), 1.5, Cells(RowItem + 1, "E"), 2
        Next RowItem
        Application.ScreenUpdating = True
        MsgBox "生成完毕,一共" & .Rows.Count & "个二维码", vbOKOnly, "提示"
      End With
    End Sub
    

    演示一下
    在这里插入图片描述

    四:用VBA生成条形码教学

    调用E灵的二维码接口语法如下:

    TXM("条形码内容", "编码", 高度, 单元格对象, "字体", 字号, 加宽倍数)
    

    参数说明
    1.过程名称 Ma,完整书写方式是:Application.COMAddIns.Item("Eling").Object.ma
    2.第一参数是条形码的内容,不能含有中文
    3.第二参数是条形码的编码,可选值是"Code128A",“Code128B"和"Code128C”,其中Code128C生成的图片更窄,但它不支持字母,只支持数值。
    4.第三参数是高度,单位为磅,通常在40-60之间,不宜过高或者过低。
    5.第四参数是单元格对象,条形码需要放在哪个单元格,就用哪个单元格对象
    6.第五参数是字体名称,可以是"宋体"、“黑体”、“Impact”、"Arial"等等
    7.第六参数是字号,即条形码下方的字符大小,通常用10即可,不宜太大。
    8.第七参数是加宽倍数,0表示不加宽,1表示加宽一倍,不支持小数
    9.请尽量用10号字体,否则可能不居中。
    代码举例
    1.用“3265798487”生成Code128C类型的高度为50磅的条形码,存放在A1单元格中。条形码的字符采用10号宋体字。

    Sub 生成单个条形码()
      Application.COMAddIns.Item("Eling").Object.tiaoma "3265798487", "Code128C", 50, Range("a1"), "黑体", 10, 0
    End Sub
    

    2.用B2:B7区域的值和成条形码,存放在D2:D7区域中:

    Sub 批量生成()
     Dim cell As Excel.Range '声明变量
     With Application.COMAddIns.Item("Eling").Object '调用E灵插件接口
      For Each cell In Range("b2:b7") '遍历b2:b7区域的每一个单元格
       '调用工具TiaoMa来生成条形码,插入条形码时会自动调整单元格的高度
       .tiaoma cell.Value, "Code128B", 50, cell.Offset(0, 2), "黑体", 10, 0
     Next
     End With
    End Sub
    

    演示一下
    利用VBA批量生成条形码

    展开全文
  • 二维码生成 条形码生成 已经写好封装 可以直接使用
  • Zxing 条形码 二维码生成,方便开发过程中使用, 使用C# 直接引用dll 文件,通过简单代码快速形成对应的二维码,条形码, 可根据需要控制对应图片大小。
  • 条形码二维码生成

    2014-10-11 13:51:29
    C#条形码 二维码 生成代码,可以用的,
  • 二维码条形码生成

    2012-10-18 16:34:53
    二维码条形码生成 扫描等 二维码条形码生成 扫描等
  • 扫瞄二维码条形码 生成二维码 。现在很多demo太老了,我的可以在xcode4.6上运行ok!
  • 生成二维码条形码

    2021-04-04 21:21:20
    源码Generate-QRCode-BarCode-iOS,原生代码生成二维码条形码,点击图片全屏显示... iOS端通过获取到的JSON,动态生成二维码以及条形码。 运行环境:Xcode 6.4、iOS 8.4 第三方库依赖:AFNetworking、MBProgressHUD
  • 条形码二维码生成

    2018-06-26 17:36:33
    可直接运行的main方法实例,生成base64编码的二维码条形码java代码
  • 条形码与二维码生成工具类库。这是三个包。用来生成条形码还有二维码三个js包,可直接引进index.js进行使用,详情请见https://blog.csdn.net/weixin_39162041/article/details/105118282
  • 使用ZXing.dll实现条形码二维码生成与读取
  • PHP生成条形码二维码条码,扫描条码 源码完整,调用极简单,新手都可以用: 直接调用: 源码目录/test_1D.php?text=要生成的内容"/> JS调用: document.writeln("源码目录/test_1D.php?text=要生成的内容 />...
  • 前面两篇介绍在ubuntu18下安装zbar 和qrencode库的安装,本篇把二维码生产和识别做个记录。 2、实验环境 实验代码在ubuntu18-x64、qt5.9.6环境; qt中添加zbar和qrencode库,步骤如下: 先 新建一个Qt Console ...

    1、前言
    前面两篇介绍在ubuntu18下安装zbar 和qrencode库的安装,本篇把二维码生成和识别做个记录。
    2、实验环境
    实验代码在ubuntu18-x64、qt5.9.6环境;
    qt中添加zbar和qrencode库,步骤如下:
    先 新建一个Qt Console Application 工程,参考如下步骤添加库即可。
    2.1>> 右键工程文件,弹出菜单;
    2.2>> 在菜单中,选择 “Add Library…”;
    2.3>> 选择 “External library” 单选框;
    2.4>> 选择 zbar库文件路径, “/usr/local/zbar/lib/libzbar.so"
    2.5>> 取消勾选框 “Mac” 和 “Windows”;
    2.6>> next–> finish .
    在qt的工程文件中, *.pro文件是qt的工程管理文件,例:camera_qml.pro 新增库的内容如下:

    #二维码 扫描和生成库文件
    unix:!macx: LIBS += -L$$PWD/../../../../../../usr/local/zbar/lib/ -lzbar
    
    INCLUDEPATH += $$PWD/../../../../../../usr/local/zbar/include
    DEPENDPATH += $$PWD/../../../../../../usr/local/zbar/include
    
    unix:!macx: LIBS += -L$$PWD/../../../../../../usr/local/qrencode/lib/ -lqrencode
    
    INCLUDEPATH += $$PWD/../../../../../../usr/local/qrencode/include
    DEPENDPATH += $$PWD/../../../../../../usr/local/qrencode/include
    
    

    二维码识别库中需要用到openCV的库,该库的安装后面补上。
    先上代码,记录此两个库的应用。

    ///> third libs
    #include "opencv2/opencv.hpp"
    #include "opencv2/imgproc.hpp"
    #include "opencv2/core.hpp"
    #include "opencv2/imgproc.hpp"
    /**
     * @brief qr code header
      */
    #include "zbar.h"
    #include "qrencode.h"
    
    /**
     * @brief QRcode::createQRcode;二维码生成
     * @param s         :create code of content
     * @param f_name    :save to path,out file is png format
     * @param width     :QR code width
     * @param height    :QR code height
     * @return          :0 success,< 0 failure
     */
    int ex_QRcode::createQRcode(QString s, const char *f_name,int width, int height )
    {
        if(s.isEmpty()){
            return -1;
        }
        if(f_name == NULL){
            return -2;
        }
        QRcode *qrcode; //二维码数据
        char *msg;
        QByteArray a = s.toLatin1();
        msg = a.data();
        qrcode = QRcode_encodeString(msg, 0, QR_ECLEVEL_L, QR_MODE_8, 1); ///QR_ECLEVEL_Q 容错等级
    
        int32_t qrcode_width = qrcode->width > 0 ? qrcode->width : 1;
        double scale_x = (double)width / (double)qrcode_width; //二维码图片的缩放比例
        double scale_y = (double)height / (double)qrcode_width;
        QImage img = QImage(width, height, QImage::Format_ARGB32);
    
        QPainter painter(&img);
        QColor background(Qt::white);
        painter.setBrush(background);
        painter.setPen(Qt::NoPen);
        painter.drawRect(0, 0, width, height);
        QColor foreground(Qt::black);
        painter.setBrush(foreground);
        for( int32_t y = 0; y < qrcode_width; y++) {
            for(int32_t x = 0; x < qrcode_width; x++) {
                unsigned char b = qrcode->data[y * qrcode_width + x];
                if(b & 0x01) {
                    QRectF r(x * scale_x, y * scale_y, scale_x, scale_y);
                    painter.drawRects(&r, 1);
                }
            }
        }
        img.save(f_name);/// f-name 生成后的二维码存储路径
    
        //QPixmap pix_img = QPixmap::fromImage(img,Qt::AutoColor);
        //pixImg.save(f_name);
        return 0;
    }
    
    /**
     * @brief QRcode::scannerQRcode,下面是二维码扫描代码
     * @param input img : const char *img,image file path
     * @param output    : std::string & decode,& content
     * @return 0 success, < 0  failure
     */
    int ex_QRcode::scannerQRcode(const char *img, std::string & decode,std::string &content)
    {
        cv::Mat  imgGray;
        //cv::Mat image = cvLoadImage(img,CV_IMWRITE_PAM_FORMAT_NULL);
        cv::Mat image = cv::imread(img);
        //imgGray.create(image.size(), CV_8UC1);
        cv::cvtColor(image,imgGray,CV_BGR2GRAY);
        //cv::imwrite(tmp,imgGray);
       ///调整图片尺寸
       cv::resize(imgGray,image,cv::Size(imgGray.cols*0.5,imgGray.rows*0.5));
        //cv::imwrite(tmp1,image);
        
        ///openCV的二值化处理函数,注意此函数的第五个参数2,二值化处理方法
        cv::threshold(image,imgGray,178,255,2);        
        //cv::imwrite(tmp2,imgGray);
        //cv::imshow("window",imgGray);
    
        unsigned char *pdata = (unsigned char *)imgGray.data;
        int width   = imgGray.cols;
        int height  = imgGray.rows;
    
        // create a scanner
        zbar::ImageScanner scanner;
        // configure the reader
        scanner.set_config(zbar::ZBAR_NONE, zbar::ZBAR_CFG_ENABLE, 1);
        zbar::Image imageZbar(width, height, "Y800", pdata, width * height);
        int n = scanner.scan(imageZbar);
        if(n>0)
        {
            for (zbar::Image::SymbolIterator symbol = imageZbar.symbol_begin();
                symbol != imageZbar.symbol_end();++symbol) {
                decode = symbol->get_type_name();
                qDebug() << "decoded " << decode.c_str() << '\n';
                content=symbol->get_data();
                qDebug() << "symbol " << content.c_str() << '\n';
    
            }
            return 0;
        }else{
            qDebug() << "QR code don't known...";
            return -1;
        }
    
    }
    
    /**
    * 测试主函数
    */
    
    #include <QImage>
    
    
    int main(int argc, char *argv[])
    {
    
        const char * source ="/home/robot/qtWorkspace/FaceEngine/image/wifi.jpeg";
        const char * f_jpg = "/home/robot/qtWorkspace/FaceEngine/image/signal.jpeg";
        const char * path = "/home/robot/qtWorkspace/FaceEngine/image/test.jpeg";
    
        ex_QRcode qr_code;  ///自定义的二维码类
       
        qr_code.createQRcode(source, path, 320,320);
    
        std::string decode,result;
        int ret = qr_code.scannerQRcode(path,decode,result);
        if (ret == 0){
            qDebug("error..");
        }
    return 0;
    }
    
    
    
    展开全文
  • 二维码/条形码生成二维码/条形码扫描器 一、二维码条形码工作原理 目前的很多应用上都有扫码功能,当时微信推出二维码扫码功能时,觉得imagine,通过一张简单的图片就能扫描添加还有,还有...
  • 二维码条形码生成
  • 根据输入的内容生成二维码或者条形码,代码简单通俗易懂
  • 8.生成条形码时提供Jan13、Code39和Jan8三种标准。 9.支持自动生成二维码,全自动的,只要单元格中录入字符,按下回车时就自动生成二维码。 10.所有功能都自动GIF动画教材,一分钟就能学会使用。
  • 生成二维码条形码

    2018-09-18 17:34:56
    根据所输入字符自动生成二维码条形码,代码非常简单使用
  • ASP.NET 生成二维码条形码图片
  • 8.生成条形码时提供Jan13、Code39、Jan8和Code128四种标准,其中Code128支持更换字体。 9.支持自动生成二维码,全自动的,只要单元格中录入字符,按下回车时就自动生成二维码。 10.所有功能都自动GIF动画教材,一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,197
精华内容 4,078
关键字:

二维码生成条形码