iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python调用zxing项目进行二维码
  • 392
分享到

python调用zxing项目进行二维码

项目二维码python 2023-01-31 05:01:55 392人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

摘要:首先创建一个java的Maven项目,加入zxing相关包,编写二维码相关代码,调试运行,打包;然后创建一个python项目,安装jpype,编写代码把相关的jar包加载,运行。 0. 创建一个maven项目 1. 配置po

摘要:首先创建一个java的Maven项目,加入zxing相关包,编写二维码相关代码,调试运行,打包;然后创建一个python项目,安装jpype,编写代码把相关的jar包加载,运行。

0. 创建一个maven项目

1. 配置pom.xml文件

<!-- https://mvnrepository.com/artifact/com.Google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.0</version>
        </dependency>

        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.0.0</version>
        </dependency>

         <dependency>  
            <groupId>com.alibaba</groupId>  
            <artifactId>fastJSON</artifactId>  
            <version>1.1.29</version>  
        </dependency> 

2. 生成与识别二维码###

import java.io.File;
import java.io.IOException;
import java.NIO.file.FileSystems;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

import com.alibaba.fastjson.JSONObject;
import com.google.zxing.BarcodeFORMat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;

public class QRCode {

    public static void main(String[] args) {
        QRCode qrcode = new QRCode();
        // 内容
        JSONObject json = new JSONObject();
        json.put("blog", "Http://blog.csdn.net/ld326");
        json.put("author", "happyprince");
        String content = json.toJSONString();
        // 生成二维码
        qrcode.EncodeQR("D:\\info-qr.png", content, 200, 200, "png");
        // 解释二维码
        boolean b = qrcode.DecodeQR("D:\\info-qr.png");
        if (b) {
            System.out.println("解釋出來是二維碼!!!");
        }

    }

    
    public void EncodeQR(String filePath, String content, int width,
            int height, String format) {
        Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
        try {
            // 生成矩阵
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
                    BarcodeFormat.QR_CODE, width, height, hints);
            // 输出图像
            Path path = FileSystems.getDefault().getPath(filePath);
            System.out.println(path);
            MatrixToImageWriter.writeToPath(bitMatrix, format, path);
        } catch (WriterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("生成二维码成功.");
    }

    
    public boolean DecodeQR(String filePath) {
        boolean b = false;
        try {
            // 读入图片,转化成位图
            BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(
                    new BufferedImageLuminanceSource(ImageIO.read(new File(
                            filePath)))));

            // 设置额外的一些信息,例如读取入来的提示信息
            Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();
            hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");

            // 对图像进行解码
            Result result = new MultiFormatReader().decode(binaryBitmap, hints);
            // 打印信息
            // sb.append("content:  " + result.getText() + " ");
            // sb.append("format:  " + result.getBarcodeFormat() + " ");
            b = true;
        } catch (IOException e) {
            // sb.append(e + " " + "filePath=" + filePath);
            e.printStackTrace();

        } catch (NotFoundException e) {
            // sb.append(e + " " + "filePath=" + filePath);
            e.printStackTrace();
        }
        return b;
    }
}

3. 打包

生成qrcode包,命名为qrcode-1.0.0.jar;再把maven下载的两个包(javase-3.0.0.jar,core-3.3.0.jar)与这个包放在一起,一会会把这些包加载到JVM中运行。

4. 安装jpype

目前配置的是win7,下载地址:http://www.lfd.uci.edu/~gohlke/Pythonlibs/#jpype

5. 创建python项目

编写python代码

# -*- coding: utf-8 -*-
import logging

from jpype import *

from common.globalVars import JAR_PATH

@singleton
class QRCode:
    """
        判断图片是否QR图片
    """

    def __init__(self):
        logging.info('starJVM..')
        startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=%s;%s;%s" % (
            JAR_PATH + 'core-3.3.0.jar',
            JAR_PATH + 'javase-3.0.0.jar',
            JAR_PATH + 'qrcode-1.0.0.jar'
        ))
        QRCode = JClass("com.lr.jpype.jpype.QRCode")
        self.qr = QRCode()

    def is_qrcode(self, file_name):
        b = self.qr.DecodeQR(file_name)
        return b
    def __del__(self):
        shutdownJVM()
        logging.info('shutdownJVM..')
qrc = QRCode()
print(qrc.is_qrcode('d:/1.jpg'))

其中装饰类,为了完成单例的功能

import logging
def singleton(cls):
    instances = {}
    def wrapper(*args, **kwargs):
        if cls not in instances:
            instances[cls] = cls(*args, **kwargs)
        return instances[cls]
    logging.info('singleton size %d' % (len(instances)))
    return wrapper

总结,这个主要是python依靠jpype,jpype运行JVM,JVM调用相关的包处理QR,主要实现的包为google的zxing。

[happyprince, http://blog.csdn.net/ld326/article/details/78671099]

--结束END--

本文标题: python调用zxing项目进行二维码

本文链接: https://www.lsjlt.com/news/188235.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python调用zxing项目进行二维码
    摘要:首先创建一个java的maven项目,加入zxing相关包,编写二维码相关代码,调试运行,打包;然后创建一个python项目,安装jpype,编写代码把相关的jar包加载,运行。 0. 创建一个maven项目 1. 配置po...
    99+
    2023-01-31
    项目 二维码 python
  • QR-Code二维码如何利用zxing库实现生成
    QR-Code二维码如何利用zxing库实现生成?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。详解使用zxing库生成QR-Code二维码首先是引入zxing库,我是使用mav...
    99+
    2023-05-31
    zxing库 qr-code 二维码
  • Android利用zxing生成二维码的详细过程
    本篇内容介绍了“Android利用zxing生成二维码的详细过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录二维码生成原理(即工作原理...
    99+
    2023-06-20
  • Java使用Zxing二维码生成的简单示例
    目录1、二维码简介2、ZXing简介3、示例3.1 搭建一个maven项目,引入Zxing依赖包3.2 创建QrCodeUtil.java 类总结1、二维码简介 二维条形码是用某种特...
    99+
    2023-01-17
    Java二维码生成 java代码生成二维码 java zxing二维码生成
  • Android利用zxing生成二维码的过程记录
    目录二维码生成原理(即工作原理)效果图如下:前提:源码如下:总结二维码生成原理(即工作原理) 二维码官方叫版本Version。Version 1是21 x 21的矩阵,Versio...
    99+
    2024-04-02
  • 怎么在Python项目中调用C++进行封装
    怎么在Python项目中调用C++进行封装?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;...
    99+
    2023-06-06
  • Python实现对二维码数据进行压缩
    目录前言一、二维码数据的压缩和写入1.读取二进制文件数据2.压缩二进制文件数据3.使用base64对压缩后的二进制文件数据进行编码4.将编码后的数据写入二维码二、读取压缩后的二维码数...
    99+
    2023-02-15
    Python二维码数据压缩 Python数据压缩 Python二维码数据
  • Android中二维码的扫描和生成(使用zxing库)
    目录一.zxing是什么?二.集成zxing框架三.界面设计四.二维码生成五.二维码扫描附:Android使用Zxing识别图片多个二维码总结一.zxing是什么? zxing是go...
    99+
    2024-04-02
  • Python并发编程:如何使用二维码进行同步?
    随着互联网的发展,人们的生活方式越来越依赖于计算机和网络。同时,计算机和网络技术也在不断地进步和发展。在这个过程中,我们需要更加高效和快速地处理和交换数据。并发编程是一种能够提高程序效率和响应速度的编程方式。而二维码作为一种数据交换方式,...
    99+
    2023-08-14
    并发 二维码 同步
  • Windows 平台下的 Python API:如何在项目中使用二维码?
    二维码作为一种快速、便捷的信息传递方式,已经被广泛应用于各个领域。在 Python 项目中,我们也可以使用二维码来实现一些功能,比如生成二维码、读取二维码等。本文将介绍在 Windows 平台下使用 Python API 实现二维码的生成...
    99+
    2023-05-26
  • 如何用Python生成二维码、解析二维码
    目录楔子生成二维码qrcodeMyQR解析二维码楔子 二维码在我们的生活中可以说是必不可少的,不单单是手机支付、其它很多地方也都需要扫描二维码。那么下面我们就来看看如何使用pyth...
    99+
    2024-04-02
  • 二维码技术在Java项目中的应用探究
    二维码技术是一种二维条码,它可以通过扫描读取信息。随着智能手机的普及,二维码技术也越来越受到人们的关注。在Java项目中,二维码技术也有很多应用。本文将探究二维码技术在Java项目中的应用。 一、二维码技术的原理 二维码技术是一种将信息编...
    99+
    2023-11-08
    npm 文件 二维码
  • Android中利用zxing实现自己的二维码扫描识别详解
    前言在上一篇文章中已经简单介绍了zxing的使用,快速集成到自己的项目中,但是使用的扫描我们没办法根据自己的需求来做自己的扫描界面,所以这篇我们来学习一下如何根据自己的需求来实现二维码的扫描。当然用到的库依然还是google的zxing。下...
    99+
    2023-05-30
    android zxing 二维码扫描识别
  • Android利用zxing快速集成二维码扫描的实例教程
    前言大家应该都还记得,以前的我们常见的都是条形扫码,自从微信使用二维码扫描后,现在市场上基本都用二维码扫描,基本上每一个项目都会有一个二维码扫描,这篇就简单快速的实现一个扫描效果,让我们对二维码的扫描有一个初步的认识和让我们的项目可以快速的...
    99+
    2023-05-30
    android zxing 集成二维码
  • 如何在Python中使用二维码对象进行数据传输?
    在当今数字化的时代,二维码已经成为了一种非常常见的数据传输方式。Python作为一种流行的编程语言,自然也有相应的库可以用来生成和解码二维码。在本篇文章中,我们将会探讨如何在Python中使用二维码对象进行数据传输。 一、生成二维码对象 P...
    99+
    2023-10-23
    响应 二维码 对象
  • 如何在Java项目中使用二维码扫描技术?
    当今数字化的时代,二维码扫描技术已经变得非常普及。无论是商业还是个人领域,都可以看到二维码的身影。那么,在Java项目中如何使用二维码扫描技术呢?本文将为您详细介绍。 一、二维码简介 二维码是一种由黑白相间的方块组成的矩阵条码,它可以将信息...
    99+
    2023-11-07
    npm 文件 二维码
  • Python调用PC摄像头实现扫描二维码
    目录简介源代码源代码说明效果如下所示简介 使用PC摄像机扫描二维码可以有很多应用场景,例如: 支付宝、微信支付等移动支付方式需要使用二维码进行支付,PC摄像机可以扫描这些支付二维码,...
    99+
    2023-05-19
    Python调用摄像头扫描二维码 Python调用摄像头 Python 扫描二维码
  • 如何在Git项目中集成二维码功能?
    Git是一个非常流行的版本控制系统,它可以让开发者轻松地管理代码版本、协作开发以及代码的备份和恢复。二维码作为一种非常方便的信息传递方式,我们常常需要在Git项目中集成二维码功能。本文将介绍如何在Git项目中集成二维码功能。 一、引入QRC...
    99+
    2023-09-26
    二维码 path git
  • Git 中如何管理 ASP 项目中的二维码?
    Git 是一款非常流行的版本控制工具,它可以帮助我们更好地管理项目代码。在 ASP 项目中,二维码是非常常见的元素,比如我们在开发电商网站时,常常需要生成商品的二维码。在这篇文章中,我们将介绍如何在 Git 中管理 ASP 项目中的二维码...
    99+
    2023-10-06
    二维码 日志 git
  • Python API 和 Windows:如何在项目中集成二维码生成器?
    随着二维码的普及,越来越多的应用需要支持二维码生成功能。Python API 提供了很多二维码生成库,本文将介绍如何在 Windows 系统下使用 Python API 集成二维码生成器。 Python API 介绍 Python API...
    99+
    2023-05-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作