二维码扫一扫java开发

                                二维码扫一扫java开发


一.正言

 在大家在这里分享曾经以为很6的技术,其实会了就很简单,以下项目就是输入你的内容或链接或图片,别人可以扫码关注你。


二.项目讲解

          

ReadMe

java 开发二维码扫描技术

1.新建一个Javaweb项目。

2.确定需求,建立静态页面。

3.编写业务逻辑,生成二维码。

4.保存在自己的服务器。

5.读取到我们的页面

6.测试(内测《黑盒测试,白盒测试》,公测)

7.试运行

8.上线

9.运营,不断的根据我们用户迭代更新(改版)





qrcode.jsp中:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!doctype html>
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8">

		<title>安东java开发二维码web.html--</title>
		<neta name="Keywords" content="关键词,关键词">
		<neta name="description" content="">
	
	<!--css:  层叠样式表,一件美丽的外衣-->
		<style type="text/css">
		*{margin:0;padding:0;}     /* 把外、内边框边缘置为0,不受控制  就可自己设置   */
			body{font-size:12px;font-family:"微软雅黑";color:#666;}
		
			/*以“.”开头的CSS样式称为   类样式*/
			.qrcode{width:700px;height:300px;background:#009933;margin:200px auto;}
			.qrcode h1{font-size:24px;border:1px solid   red;text-align:center;color:#000000;}
			.qrcode .message{width:700px;height:200px;}
			.qrcode .sub{width:700px;height:40px;border:0;font-size:30px;color:#000099;font-family:"微软雅黑";font-weight:bold;background:#ff00ff;}

		</style>


	</head>

<body> 
				<!--div:层,盒子,容器
				1不能以数字开头
				2
				-->
				
	<form action="qrcode_img.jsp" method="post">			
	<div class="qrcode">
	<h1>              曾经有小猫和小狗   他们分别叫大东小兰  哈比</h1>
	<textarea class="message" name="message"> </textarea>
	<input type="submit" value="提  交" class="sub"/>
	</div>
</form>


</body>
</html>

qrcode_img.jsp

    

<%@ page language="java" import="java.util.*,com.util.QrcodeUtil" pageEncoding="utf-8"%>
<!doctype html>                          
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8">

		<title>二维码显示</title>
		<neta name="Keywords"content="关键词">
		<neta name="description" content="">
	
		<style type="text/css">
		*{margin:0;padding:0;}
		body{font-size:12px;font-family:"微软雅黑";color:#cc0000;}
		.qrcode_img{width:600px;border:1px solid red;margin:200px auto;text-align:center;}
		.qrcode_img img{margin:80px auto;} 


		</style>


	</head>

<body>
<div class="qrcode_img">
	<h1>       扫一扫你就知道不一样的惊喜!  </h1>  
	<%
	request.setCharacterEncoding("GBK");
	String messge=request.getParameter("message");
	//动态取一个文件的名称
	String fileName="andong"+new Date().getTime();
	String imaPath=request.getRealPath("/")+"/"+fileName;//获取服务器根目录
	//调用生成二维码的方法
	QrcodeUtil.QrcodeImage(messge, imaPath);
	out.print("<img src='"+fileName+"'/>");
	 %>
	
	<img src="images/andong.jpg"/>
	<h2>     湖北交通大学软件工程 安东 个人QQ:2756625920</h2>
	</div>

</body>

</html>

QrcodeUtil.java中:

package com.util;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;

public class QrcodeUtil {
/**
 * java生成二维码
 * @author Administrator
 *
 */

/**
 * 根据内容生成二维码
 * content 表示生成二维码的内容
 * imgPath 表示需要保持二维码图片值的路径
 */
public static void QrcodeImage(String content,String imgPath){
	int width=140;
	int height=140;
	try{
		
		//实例化Qrcode
		Qrcode qrcode=new Qrcode();
		//设置纠错能力L%7,M%15,Q%25,H%30,越大 空间越大
		qrcode.setQrcodeErrorCorrect('M');
		qrcode.setQrcodeEncodeMode('B');//设置编码,B表示二建制
		
		//设置二维码的尺寸  ,取值范围(1-40)
		qrcode.setQrcodeVersion(7);
		//设置图片的尺寸;//BufferedImage.TYPE_3BYTE_BGR表示创建一个具有8位RGB颜色的分量图像
		BufferedImage bufImg=new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
		//绘制二维码的图片,创建画笔工具
		Graphics2D gs=bufImg.createGraphics(
				
				);
		//设置矩形区域的背景颜色
		gs.setBackground(Color.WHITE);
		//创建二维码的矩形局域
		gs.clearRect(0, 0, width, height);
		//设置二维码图片的颜色值
		gs.setColor(Color.red);//设置为红色
		//设置内容字节数组,设置编码集
		byte[] contentBytes=content.getBytes("gb2312");
		//输出二维码
		if(contentBytes.length>0){
			boolean [][]codeOut=qrcode.calQrcode(contentBytes);
			for(int i=0;i<codeOut.length;i++){
				for(int j=0;j<codeOut.length;j++){
					if(codeOut[j][i]){
						//根据布尔数组填充图片的格点;2 偏移量
						gs.fillRect(j*3 +2, i*3 +2, 3, 3);
					}
				}
			}
		}else{
			System.out.println("对不起!出错了,你输入的信息有误!");
		}
		
		
	gs.dispose();//释放画笔工具
	bufImg.flush();//将残留的数据推出缓冲区
	//二维码图片输出
	File imgFile=new File(imgPath);
	//以流的方式将image二维码图片输出
	ImageIO.write(bufImg, "jpg",imgFile);
	System.out.println("生成二维码成功!");
	
	}catch(Exception e){
		e.getStackTrace();//堆栈
	}
}


public static void main(String[] args) {
	
	System.out.println("就算全世界灭亡!我也依然爱着你!!!");
	String content=" 小猫 爱小狗  ";
	String imgPath="E:/二维码生成图片/andong.jpg";
	QrcodeImage(content,imgPath);
	
	}

}

三。运行效果

    




发布了28 篇原创文章 · 获赞 50 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_21873747/article/details/80445133