基于Zxing修改定位点(码眼)的颜色

本文介绍了如何修改Zxing库中二维码定位点(码眼)的颜色。通过定义两个List,然后在类中实现核心操作,将定位点数据添加到ByteMatrix中,并对数据进行处理,最终实现定位点颜色的定制。在Android端,提供了生成二维码的示例代码。
摘要由CSDN通过智能技术生成

废话就不多说了,多说废话也没有什么用……
来一张图片说明:
要修改的效果图
这下可明白我说的是修改哪里的颜色了吧。
那好接下来我们就开始…废话还不快点上代码。
package com.google.zxing.qrcode.encoder
public final class ByteMatrix

首先 定义一下两个List
//定位点的外边框位置点
public final List<MyPoint> outLinePosition = new ArrayList();
//定位点的内边框位置点
public final List<MyPoint> insideLinePosition = new ArrayList();

接着还要在该类中写两个方法,如下:

public byte getOutLine(int x, int y){
    boolean a = false;
    for(MyPoint p:outLinePosition){
      if(x == p.x && y == p.y){
        a = true;
        break;
      }
    }
    if(a){
      return bytes[x][y];
    }else{
      return 0;
    }
  }

  public byte getInsideLine(int x, int y){
    boolean a = false;
    for(MyPoint p:insideLinePosition){
      if(x == p.x && y == p.y){
        a = true;
        break;
      }
    }
    if(a){
      return bytes[x][y];
    }else{
      return 0;
    }
  }
package com.google.zxing.qrcode.encoder;
final class MatrixUtil

这是最核心的操作,在这里把定位点的数据添加到ByteMatrix中。

  private static void embedPositionDetectionPattern(int xStart, int yStart, ByteMatrix matrix) {
    for (int y = 0; y < 7; ++y) {
      for (int x = 0; x < 7; ++x) {
        matrix.set(xStart + x, yStart + y, POSITION_DETECTION_PATTERN[y][x]);
        if(POSITION_DETECTION_PATTERN[y][x] == 1){
          MyPoint p = new MyPoint(xStart + x,yStart + y);
          if(x == 0 || y == 0 || x == 6 || y == 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值