利用QRCode生成二维码

百度飞浆PaddlePaddle下PP-YOLO系列训练模型coco数据报错:and it will be ignored 问题描述: 在win10下用paddlepaddle运行pp-yolo系列模型,训练时报错: ppdet.data.source.coco WARNING: Illegal image file: D:\xxx\xxx\...\xxx.png, and it will be ignored 原因分析: 仔细确认了所需的coco格式,确定路径配置正确,但报错显示模型找不到图片,让人摸不着头脑 后来打开标注的json文件,发现里面的imagePath和对应的图片名称不一样,比如 12138.json 阅读详情

在群聊天里面看到有人要QRCode.jar,在网上一查才知道是生成和解析二维码的包。在网上找了一下用法,很好用。在此贴出来。

QRCode.jar 免积分下载地址:http://download.youkuaiyun.com/detail/levelmini/7470979 

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.data.QRCodeImage;
import jp.sourceforge.qrcode.exception.DecodingFailedException;

import com.swetake.util.Qrcode;
/**
 * 
 * 二维码生成器
 * 
 * @blog http://sjsky.iteye.com
 * 
 * @author Michael
 */

public class TestQRCode {
	//设置二维码中间图片的宽高
	private int imageWidth = 30;
	private int imageHeight = 30;
	/**
	 * 生成二维码(QRCode)图片
	 * @param content 二维码索表示的内容。
	 * @param imgPath 二维码图片存放路径。
	 * @param centerImgPath 二维码中央的logo。可以为空字符串或null
	 */

	public void encoderQRCode(String content, String imgPath ,String centerImgPath) {
		try {
			Qrcode qrcodeHandler = new Qrcode();
			qrcodeHandler.setQrcodeErrorCorrect('M');
			qrcodeHandler.setQrcodeEncodeMode('B');
			qrcodeHandler.setQrcodeVersion(7);
			System.out.println(content);
			byte[] contentBytes = content.getBytes("gb2312");
			BufferedImage bufImg = new BufferedImage(140, 140,
			BufferedImage.TYPE_INT_RGB);
			Graphics2D gs = bufImg.createGraphics();
			gs.setBackground(Color.WHITE);
			gs.clearRect(0, 0, 140, 140);
			// 设定图像颜色> BLACK
			gs.setColor(Color.BLACK);
			// 设置偏移量 不设置可能导致解析出错
			int pixoff = 2;
			// 输出内容> 二维码
			if (contentBytes.length > 0 && contentBytes.length < 120) {
				boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
				for (int i = 0; i < codeOut.length; i++) {
					for (int j = 0; j < codeOut.length; j++) {
						if (codeOut[j][i]) {
							gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
						}
					}
				}
			} else {
				System.err.println("QRCode content bytes length = "
				+ contentBytes.length + " not in [ 0,120 ]. ");
			}
			if (!("".equals(centerImgPath) || null == centerImgPath)) {
				createPhotoAtCenter(bufImg,centerImgPath);				
			}
			gs.dispose();
			bufImg.flush();
			
			File imgFile = new File(imgPath);
			// 生成二维码QRCode图片
			ImageIO.write(bufImg, "png", imgFile);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
     * 解码二维码,如果中间带有logo则解析可能出乱码。
     * @param imgPath
     * @return String
     */ 
    public String decoderQRCode(String imgPath) { 
        // QRCode 二维码图片的文件 
        File imageFile = new File(imgPath); 
        BufferedImage bufImg = null; 
        String decodedData = null; 
        try { 
            bufImg = ImageIO.read(imageFile); 
            QRCodeDecoder decoder = new QRCodeDecoder(); 
            decodedData = new String(decoder.decode(new J2SEImage(bufImg))); 
        } catch (IOException e) { 
            System.out.println("Error: " + e.getMessage()); 
            e.printStackTrace(); 
        } catch (DecodingFailedException dfe) { 
            System.out.println("Error: " + dfe.getMessage()); 
            dfe.printStackTrace(); 
        } 
        return decodedData; 
    } 
    
    class J2SEImage implements QRCodeImage { 
        BufferedImage bufImg; 
        public J2SEImage(BufferedImage bufImg) { 
            this.bufImg = bufImg; 
        } 
        public int getWidth() { 
            return bufImg.getWidth(); 
        } 
        public int getHeight() { 
            return bufImg.getHeight(); 
        } 
        public int getPixel(int x, int y) { 
            return bufImg.getRGB(x, y); 
        } 
    } 
    
    /**
     * 在二维码中间加入图片
     * 
     * @param bugImg
     * @return
     */
    private BufferedImage createPhotoAtCenter(BufferedImage bufImg ,String centerImgPath) throws Exception {
    	 Image im = ImageIO.read(new File(centerImgPath));
         Graphics2D g = bufImg.createGraphics();
         //获取bufImg的中间位置
         int centerX = bufImg.getMinX() + bufImg.getWidth()/2 - imageWidth/2;
         int centerY = bufImg.getMinY() + bufImg.getHeight()/2 - imageHeight/2;
         g.drawImage(im,centerX,centerY,imageWidth,imageHeight,null);
         g.dispose();
         bufImg.flush();
    	return bufImg;
    }

	public static void main(String[] args) {
		//生成二维码
		String imgPath = "D:/QRcode.png";
		String content = "http://blog.youkuaiyun.com/levelmini";
		TestQRCode handler = new TestQRCode();
		handler.encoderQRCode(content, imgPath,"d:/levelmini.png");
		System.out.println("encoder QRcode success");
		//解析二维码文件
        String imgPath1 = "D:/QRcode.png"; 
        String decoderContent = handler.decoderQRCode(imgPath1); 
        System.out.println("解析结果如下:"); 
        System.out.println(decoderContent); 
        System.out.println("========decoder success!!!");
	}
}
效果:



C# 利用QRCode生成二维码图片 网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快。但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴。这是本要用它做了一个项目后,简单的整理了一下。 组件下载地址:http://download.youkuaiyun.com/detail/lybwwp/6861821 下载文件包包含ThoughtWorks.QRCode.dll与dll的源码,强人可修改些源码。 字符串较长的情况下,用ThoughtWorks.QRCode生成二维码时出 阅读详情

相关推荐

Unity性能优化 - 动态图集

Unity 动态图集是 Unity 引擎中用于处理游戏纹理优化的一种技术。本文介绍了什么是动态图集,动态图集的优缺点,以及提供了一套完整的代码供大家参考。

qq_33808037的博客 4840

Thinkphp iis 上传图片报错(非法图像文件)问题解决办法!

报错:非法图像文件! 环境:iis7.5/fastcgi  php5.6.24  php.ini中 upload_tmp_dir  目录权限  都设置ok 首先我们看源码: /* 对图像文件进行严格检测 */ $ext = strtolower($file['ext']); if(in_array($ext, array('gif','jpg'

路人小K 8999

别再到处找资源了!WinCC 7.5 SP2官方下载与Windows 10保姆级安装避坑指南

本文提供了WinCC 7.5 SP2在Windows 10上的官方下载与安装全流程指南,重点解决了资源获取难、系统兼容性问题及分卷压缩处理等常见痛点。通过详细的步骤和实用技巧,帮助用户顺利完成安装并优化配置,适用于工控领域的学习者和从业者。

weixin_32924297的博客 475

WARNING: Illegal image file && not found any voc record in %s‘ % (self.anno_path)

2.not found any voc record in %s' % (self.anno_path)是没找到xml文件(voc对应xml,coco对应josn文件)我的是因为路径问题,路径对了就没问题了。如果路径对了但是仍然有这个报错,那就去看看文件里image和xml是不是一一对应。1.Illegal image file是文件路径问题。把路径改为绝对路径,并且使用“\\”,如下图。

qq_63978659的博客 799

AI Agent在营销领域的实战策略

本文从第一性原理出发,系统性拆解AI Agent在营销领域的落地逻辑、技术架构、实现方案与实战策略。全文覆盖从基础概念到高级优化的全层级知识:底层理论层面推导营销Agent的效用函数与决策框架;技术架构层面提出"感知-记忆-规划-行动-反思"五组件可落地架构;实践层面提供生产级代码实现、多行业案例与ROI提升方法论;前沿层面探讨多Agent协同、世界模型仿真等下一代技术方向。

操作系统内核探秘的博客 227

几何修复_ANSYS流体分析:几何前处理

建模及几何处理工具非常多,选择起来让人眼花缭乱。对于仿真而言,高效的对几何进行清理及生成符合仿真要求的几何至关重要。ANSYS SpaceClaim Direct Modeler是基于直接建模思想的新一代3D高效率建模和几何编辑修补软件。SCDM提供了当今最快速、最富有创意的直接建模解决方案。由于它的直接建模能力即使对于导入的其它3D模型(如catia、proe、solid works创建的几何)...

weixin_35778830的博客 2416

QR code各模式的数据容量

QR码的最大容量取决于选择的版本、纠错级别和编码模式(Mode:数字、字母、二进制、汉字字符)。 QRcode Model1最大数据容量 QRcode Model2最大数据容量 以版本1、纠错级别为Level L的QR码为例,可以存储41个纯数字,或25个纯字母或17个8bit字节数据或10个汉字字符。如果要存储同样多的内容同时提高纠错级别,则需要采用更高的版本。版本1~40 数据容量、纠错码容量对照如下表: Micro QRcode最大数据容量 Micro QR Code 中可以存储的数据量并不大(最多

hyxhshl402的博客 1万+

Outlook总是提示登录微软,怎么办?

Outlook 2021反复弹出Microsoft登录窗口,可能是由于Modern Authentication身份验证机制或凭据问题导致。解决方案包括:1)通过注册表关闭Modern Authentication(适用于本地Exchange);2)清理Windows凭据管理器中的旧认证信息;3)手动配置Exchange服务器地址;4)通过注册表阻止Microsoft登录窗口弹出(适用于非M365环境)。建议按顺序尝试,尤其前两步通常能解决问题。经测试,步骤1和2已有效解决该问题。

剪刀石头布 4663

利用Qrcode生成二维码

import com.swetake.util.Qrcode; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; public static void GenerateQrCodeImg() {   // 扫描二维码得到的内容...

qq_24101357的博客 2万+

SAP会计凭证导入ABAP开发模板+注意点—附带源码

开发并不仅仅只要考虑实现的功能,只实现功能的是程序,考虑到使用场景的是工程。使用bapi校验创建会计凭证的数据,报错和参数和正式创建一致。用途,防止产生错误的凭证,即使财务凭证可以冲销。正式创建会计凭证。隐藏的坑。

小九啥也不会 1232

大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!

在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。

邓邓子的博客 8276

Python利用qrcode生成二维码并解析结果

使用到的库介绍:qrcode模块是Github上的一个开源项目,提供了生成二维码的接口。qrcode模块默认使用PIL库用于生成图像。 安装: 使用到的函数:qrcode.QRCode(),该函数用于生成二维码,传入的参数为生成二维码的内容以及样式控制介绍:pyzbar是python的一个第三方库,其作用包括条形码生成和扫描器。 安装: 使用到的函数:pyzbar.decode(),该函数用于解析二维码存储的信息介绍:PIL,全称Python Image Library,主要作用是图像处理,可用于图片剪切、

年少的勇气已经用完,剩下的就是三思而后行 1815

【WorkBuddy专栏19】技能的创造与迁移——从零开始打造你的AI工作流

【WorkBuddy专栏19】技能的创造与迁移——从零开始打造你的AI工作流

AI人人懂 369

利用qrcode.js生成二维码,并点击按钮下载二维码图片(亲测可用)

话不多说,先上代码(复制即用): <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>二维码</title> <style> body{

spray_wave的博客 8548

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

利用QrCode.Net生成二维码 asp.net mvc c#

利用QrCode.Net生成二维码 asp.net mvc c#里面介绍了.net的方式及js的方式,还不错。

Vic的博客 4097

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java利用zxing开源工具生成二维码QRCode

java利用zxing开源工具生成二维码QRCode 源代码下载地址:http://www.zuidaima.com/share/1550463727340544.htm

springmvc_springdata的专栏 1500

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

前端: 如何利用Qrcode制作一个二维码生成器?

玲琅满目的二维码在我们的都市和朋友圈中随处可见, 很多平台都提供了定制二维码的服务, 那么作为一名程序员, 我们如何自己实现一个简单的二维码生成器呢? 接下来笔者就来带大家一起利用Qrc...

趣谈前端 2700

利用qrcode生成二维码

pip install qrcode pip install image ------- 下面是python代码: #!/usr/bin/env python import qrcode qr = qrcode.QRCode( version = 5, error_correction = qrcode.constants.ERROR_CORRECT_L, box_size=10

ace_yijianghui的专栏 571

网页前端知识汇总(三)——网页前端利用二维码插件qrcode生成在线二维码

最近几年二维码的广泛应用,方便了很多行业,如支付宝,微信,小程序扫码之类的,这个在二十年前,想都不敢想这么方便,那时候有书刊编码扫一扫都感觉是高科技了,如今,二维码的广泛应用,生活还是方便了不少!一般很少中小企业自己开发JS库,大部分使用第三方库使用,下面我讲解下我现在在使用的JS库,qrcode.js。这样就生成底色白色,绿色线条的二维码了,替代了默认白底黑条的二维码;注意,一定要命名id属性值,这个也是指定生成区域的唯一标识,我命名为xycms_qrcode;好了,简单的生成二维码技术就介绍到这里了。

XYCMS博客家园 2159

利用QRCode.js生成动态二维码页面

QRCode.js是一个轻量级的JavaScript库,用于在网页中生成二维码。它简单易用,通过在网页中插入一个QRCode对象,就可以轻松地生成二维码图像。在这个例子中,我们将使用QRCode.js生成一个简单的文本信息二维码,并通过按钮刷新二维码内容。通过QRCode.js库,我们可以轻松实现在网页中生成二维码,并通过JavaScript实现二维码内容的动态更新。这为网页开发中一些需要生成二维码的场景提供了便捷的解决方案。

学IT,找陈寒 5218

利用qrcode 生成二维码

利用前端技术 生成二维码

smouns_的博客 2055

vue中如何利用qrCode生成二维码

vue中如何利用qrCode生成二维码

qq_42931285的博客 1811
上一篇: POI获取excel单元格的内容
下一篇: HTML代码生成
levelnini
博客等级 码龄14年 45粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值