A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

a371166028 来自手机 中级黑马 2014-12-13 23:46:05
181#
又黑马币,嘿嘿
回复 使用道具 举报
Little_Pea 发表于 2014-12-12 21:05
我来碰碰钉子,也见见世面。

加油!
回复 使用道具 举报

请问能回答以前过期的问题吗?
回复 使用道具 举报
强烈推荐黑马加深 数据结构、算法
回复 使用道具 举报
继续做作业
回复 使用道具 举报
领题走人  哈哈
回复 使用道具 举报
包旭 来自手机 中级黑马 2014-12-15 01:33:58
187#
大数据以后发展前景怎么样呀
回复 使用道具 举报
Little_Pea 发表于 2014-12-14 10:13
请问能回答以前过期的问题吗?

以前的题可以答,正确的话可以给1个技术分。
回复 使用道具 举报
包旭 发表于 2014-12-15 01:33
大数据以后发展前景怎么样呀

现在正是比较火的时候,以后只会更好。
回复 使用道具 举报
来看看!~
回复 使用道具 举报
顶帖,领题
回复 使用道具 举报
二维码这个一定要看看,和我的毕业设计有点关系!
回复 使用道具 举报
我又来啦
回复 使用道具 举报
学习学习下想
回复 使用道具 举报
二维码,谢谢

kongchuiting.png (1.31 KB, 下载次数: 2)

二维码

二维码

QRCode.zip

1.96 KB, 阅读权限: 200, 下载次数: 1

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报

赞一个:

  1. import java.awt.Color;
  2. import java.awt.Graphics2D;
  3. import java.awt.image.BufferedImage;
  4. import java.io.File;
  5. import java.io.IOException;
  6. import javax.imageio.ImageIO;
  7. import com.swetake.util.Qrcode;
  8. import jp.sourceforge.qrcode.QRCodeDecoder;
  9. import jp.sourceforge.qrcode.data.QRCodeImage;
  10. import jp.sourceforge.qrcode.exception.DecodingFailedException;


  11. /**
  12. * 要求:参考博客,学习java生成二维码以及解析二维码知识,让后
  13. * ①将自己的账号名称生成二维码图片,②解析出该图片,将代码打包提交,同时将生成的二维码图片上传。
  14. * */
  15. public class QRCode {
  16.     /**
  17.      * 生成二维码(QRCode)图片
  18.      * @param content 存储内容
  19.      * @param imgPath 图片路径
  20.      * @param imgType 图片类型
  21.      */
  22.     public void encoderQRCode(String content, String imgPath, String imgType) {
  23.             this.encoderQRCode(content, imgPath, imgType, 7);
  24.     }

  25.     /**
  26.      * 生成二维码(QRCode)图片
  27.      * @param content 存储内容
  28.      * @param imgPath 图片路径
  29.      * @param imgType 图片类型
  30.      * @param size 二维码尺寸
  31.      */
  32.         private void encoderQRCode(String content, String imgPath, String imgType,int size) {
  33.                 // TODO Auto-generated method stub
  34.         try {
  35.             BufferedImage bufImg = this.qRCodeCommon(content, imgType, size);
  36.             File imgFile = new File(imgPath);
  37.             // 生成二维码QRCode图片
  38.             ImageIO.write(bufImg, imgType, imgFile);
  39.         } catch (Exception e) {
  40.             e.printStackTrace();
  41.         }
  42.         }
  43.        
  44.         /**
  45.      * 生成二维码(QRCode)图片的公共方法
  46.      * @param content 存储内容
  47.      * @param imgType 图片类型
  48.      * @param size 二维码尺寸
  49.      * @return
  50.      */
  51.     public BufferedImage qRCodeCommon(String content, String imgType, int size) {
  52.             BufferedImage bufImg = null;
  53.             try {
  54.                     Qrcode qrcodeHandler = new Qrcode();
  55.                     // 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小
  56.                     qrcodeHandler.setQrcodeErrorCorrect('M');
  57.                     qrcodeHandler.setQrcodeEncodeMode('B');
  58.                     // 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大
  59.                     qrcodeHandler.setQrcodeVersion(size);
  60.                     // 获得内容的字节数组,设置编码格式
  61.                     byte[] contentBytes = content.getBytes("utf-8");
  62.                     // 图片尺寸
  63.                     int imgSize = 67 + 12 * (size - 1);
  64.                     bufImg = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_RGB);
  65.                     Graphics2D gs = bufImg.createGraphics();
  66.                     // 设置背景颜色
  67.                     gs.setBackground(Color.WHITE);
  68.                     gs.clearRect(0, 0, imgSize, imgSize);

  69.                     // 设定图像颜色> BLACK
  70.                     gs.setColor(Color.BLACK);
  71.                     // 设置偏移量,不设置可能导致解析出错
  72.                     int pixoff = 2;
  73.                     // 输出内容> 二维码
  74.                     if (contentBytes.length > 0 && contentBytes.length < 800) {
  75.                             boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
  76.                             for (int i = 0; i < codeOut.length; i++) {
  77.                                     for (int j = 0; j < codeOut.length; j++) {
  78.                                             if (codeOut[j][i]) {
  79.                                                     gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
  80.                                             }
  81.                                     }
  82.                             }
  83.                     } else {
  84.                             throw new Exception("QRCode content bytes length = " + contentBytes.length + " not in [0, 800].");
  85.                     }
  86.                     gs.dispose();
  87.                     bufImg.flush();
  88.             } catch (Exception e) {
  89.                     e.printStackTrace();
  90.             }
  91.             return bufImg;
  92.     }
  93.    
  94.     /**
  95.      * 解析二维码(QRCode)
  96.      * @param imgPath 图片路径
  97.      * @return
  98.      */
  99.     public String decoderQRCode(String imgPath) {
  100.         // QRCode 二维码图片的文件
  101.         File imageFile = new File(imgPath);
  102.         BufferedImage bufImg = null;
  103.         String content = null;
  104.         try {
  105.                 bufImg = ImageIO.read(imageFile);
  106.                 QRCodeDecoder decoder = new QRCodeDecoder();
  107.                 content = new String(decoder.decode(new qrcodeImage(bufImg)), "utf-8");
  108.         } catch (IOException e) {
  109.                 System.out.println("Error: " + e.getMessage());
  110.                 e.printStackTrace();
  111.         } catch (DecodingFailedException dfe) {
  112.                 System.out.println("Error: " + dfe.getMessage());
  113.                 dfe.printStackTrace();
  114.         }
  115.         return content;
  116.     }
  117.     public static void main(String[] args) {
  118.         String imgPath = "E:/kongchuiting.png";
  119.         String encoderContent = "kongchuiting";
  120.         QRCode handler = new QRCode();
  121.         handler.encoderQRCode(encoderContent, imgPath, "png");
  122.         System.out.println("========encoder success");   
  123.         String decoderContent = handler.decoderQRCode(imgPath);
  124.         System.out.println("解析结果如下:");
  125.         System.out.println(decoderContent);
  126.         System.out.println("========decoder success!!!");
  127.     }
  128. }


  129. class qrcodeImage implements QRCodeImage {

  130.         BufferedImage bufImg;
  131.         
  132.         public qrcodeImage(BufferedImage bufImg) {
  133.                 this.bufImg = bufImg;
  134.         }
  135.         
  136.         public int getHeight() {
  137.                 return bufImg.getHeight();
  138.         }

  139.         public int getPixel(int x, int y) {
  140.                 return bufImg.getRGB(x, y);
  141.         }

  142.         public int getWidth() {
  143.                 return bufImg.getWidth();
  144.         }

  145. }
复制代码
回复 使用道具 举报
我来领题啦
回复 使用道具 举报
领题咯~~~~
回复 使用道具 举报
llllllllllllll
回复 使用道具 举报
能看看这一题不啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马