项目里实现生成二维码这个功能时,发现二维码的边框太大了,导致二维码内容区域太小。百度了一下,发现有人说设置EncodeHintType.MARGIN属性即可,这个属性值为1-4,实际测试发现并没有什么卵用。只好继续百度,最终找到了这个方法。
  

public static Bitmap Create2DCode(String str, int width, int height) {try {Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();hints.put(EncodeHintType.CHARACTER_SET, "utf-8");hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);hints.put(EncodeHintType.MARGIN, 1);BitMatrix matrix = new QRCodeWriter().encode(str, BarcodeFormat.QR_CODE, width, height, hint);matrix = deleteWhite(matrix);//删除白边width = matrix.getWidth();height = matrix.getHeight();int[] pixels = new int[width * height];for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {if (matrix.get(x, y)) {pixels[y * width + x] = Color.BLACK;} else {pixels[y * width + x] = Color.WHITE;}}}Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels, 0, width, 0, 0, width, height);return bitmap;} catch (Exception e) {return null;}}private static BitMatrix deleteWhite(BitMatrix matrix) {int[] rec = matrix.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 (matrix.get(i + rec[0], j + rec[1]))resMatrix.set(i, j);}}return resMatrix;}

解决zing生成二维码时二维码太小、白框太大的问题相关推荐

  1. 解决javah生成c头文件时找不到android类库的问题

    解决javah生成c头文件时找不到android类库的问题 参考文章: (1)解决javah生成c头文件时找不到android类库的问题 (2)https://www.cnblogs.com/liul ...

  2. 【教程】Altium Designer 6.9导出库和更新PCB器件时,镂空字符(Inverted)框变大的解决办法

    [方法一]修改单个镂空字符 1.右键选择需要进行修改的字符串,选择属性(Properties...) 2.在String配置框中,找到Use Inverted Rectangle,取消勾选. [方法二 ...

  3. opencv二值化找轮廓检测背景简单小物体

    一.前言 本篇主要是针对背景简单,且具有固定颜色的单类小物体,方法为在灰度化时选用图片的HSV中的S通道,再使用opencv 二值化找轮廓大法可将小物体框出. 原理很简单,图片->取S通道灰度化 ...

  4. 绝地求闪退be服务器未运行,绝地求生闪退英文弹窗怎么回事?弹BE启动器白框解决办法...

    绝地求生闪退英文弹窗怎么回事?弹BE启动器白框解决办法 大家在玩在绝地求生是不是会碰到闪退?这是怎么一回事呢,要怎么解决呢?下面小编艾米分享绝地求生闪退的最新解决方法,希望能够帮助到大家! 绝地求生闪 ...

  5. ThoughtWorks.QRCode 生成QR二维码时提示“索引超出了数组界限”的原因和解决方法

    ThoughtWorks.QRCode 生成QR二维码时提示"索引超出了数组界限"的原因和解决方法 参考文章: (1)ThoughtWorks.QRCode 生成QR二维码时提示& ...

  6. python中使用qrcode库生成二维码时,填充logo变成黑白色的解决方法。

    python如何生成qrcode的教程已经有很多了,我这里仅仅排一下坑. import qrcode from PIL import Imageqr = qrcode.QRCode(version=1 ...

  7. 解决qrcode生成的二维码安卓手机长按不识别问题

    文章目录 问题描述 toDataURL语法 自己验证 问题描述 qrcode生成的二维码,在苹果等手机上长按可识别,在华为手机上长按没有反应,截图保存下来长按又可以识别. 问题原因 浏览器兼容问题 q ...

  8. 用ThoughtWorks.QRCode生成二维码时出现“索引超出了数组界限”的错误

    用ThoughtWorks.QRCode生成二维码时出现"索引超出了数组界限"的错误 字符串较长的情况下,用ThoughtWorks.QRCode生成二维码时出现"索引超 ...

  9. 解决qrcode生成的二维码微信长按不识别问题

    问题描述 QRcode 生成二维码,展示到页面,微信打开,长按二维码没反应.而直接放二维码图片上去可以识别. 问题原因 手机兼容问题 qrcode在页面生成二维码时,会生成一个canvas标签和一个i ...

最新文章

  1. 没有事业的女朋友(一个老总的感言)
  2. .NET 云原生架构师训练营(模块二 基础巩固 安全)--学习笔记
  3. 性能对比:Count(字段)、Count(主键)、Count(1)、Count(*)
  4. linux usb mic延时大如何解决,Linux 中 SSH 客户端登录缓慢的解决办法
  5. 基于SpringBoot的后台管理系统(异常、注解、node、page)(二)
  6. 2013年计算机考试题库,2013年计算机三级数据库上机冲刺试题一及答案
  7. scott用户对象维护
  8. 区块链零知识证明:Zcash 基础知识普及帖,Zcash 技术分析
  9. node_redis 中文文档及node_redis 注释笔记(中文版)
  10. java类的构造方法编程训练—买可乐
  11. JS 实现点击按钮实现超链接功能
  12. 中秋闲来无事,自己写个2048玩玩
  13. android 自动点击sdk,Android 自动化记录: OPPO 、VIVO SDK 登录自动化处理
  14. Oracle递归查询的使用
  15. 服务器里文件表格如何自动备份,Excel电子表格自动备份的两种方法
  16. 一分钟详解线结构光扫描系统
  17. python合并列表并按升序排序_程序合并间隔并在Python中按升序对其进行排序
  18. Pointnet++代码详解(三):query_ball_point函数
  19. 入门PHP教程:PHP根据身份证号码,获取性别、获取生日、计算年龄等多个信息
  20. 转:高层游戏引擎——基于OGRE所实现的高层游戏引擎框架

热门文章

  1. html伸缩布局,HTML-CSS:伸缩布局
  2. Python:实现fuzzy operations模糊运算算法(附完整源码)
  3. SendCloud从注册到邮件发送使用心得
  4. 68 个 Python 内置函数详解,初学者一定不要错过,建意收藏学习
  5. 单片机篮球记分牌c语言程序和实训报告,单片机实现篮球记分牌的设计
  6. python语音验证码识别_python语音验证码接口_python语音接口_python语音验证码_语音验证码代码示例_互亿无线...
  7. (1)QlikView概述
  8. Qlikview常用VB脚本
  9. 管理团队需要的能力和技术
  10. 微信支付申请及简单使用