com.google.zxing.pdf417.PDF417ResultMetadata#setOptionalData ( )源码实例Demo

下面列出了com.google.zxing.pdf417.PDF417ResultMetadata#setOptionalData ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: ZXing-Orient   文件: DecodedBitStreamParser.java
private static int decodeMacroBlock(int[] codewords, int codeIndex, PDF417ResultMetadata resultMetadata)
    throws FormatException {
  if (codeIndex + NUMBER_OF_SEQUENCE_CODEWORDS > codewords[0]) {
    // we must have at least two bytes left for the segment index
    throw FormatException.getFormatInstance();
  }
  int[] segmentIndexArray = new int[NUMBER_OF_SEQUENCE_CODEWORDS];
  for (int i = 0; i < NUMBER_OF_SEQUENCE_CODEWORDS; i++, codeIndex++) {
    segmentIndexArray[i] = codewords[codeIndex];
  }
  resultMetadata.setSegmentIndex(Integer.parseInt(decodeBase900toBase10(segmentIndexArray,
      NUMBER_OF_SEQUENCE_CODEWORDS)));

  StringBuilder fileId = new StringBuilder();
  codeIndex = textCompaction(codewords, codeIndex, fileId);
  resultMetadata.setFileId(fileId.toString());

  if (codewords[codeIndex] == BEGIN_MACRO_PDF417_OPTIONAL_FIELD) {
    codeIndex++;
    int[] additionalOptionCodeWords = new int[codewords[0] - codeIndex];
    int additionalOptionCodeWordsIndex = 0;

    boolean end = false;
    while ((codeIndex < codewords[0]) && !end) {
      int code = codewords[codeIndex++];
      if (code < TEXT_COMPACTION_MODE_LATCH) {
        additionalOptionCodeWords[additionalOptionCodeWordsIndex++] = code;
      } else {
        switch (code) {
          case MACRO_PDF417_TERMINATOR:
            resultMetadata.setLastSegment(true);
            codeIndex++;
            end = true;
            break;
          default:
            throw FormatException.getFormatInstance();
        }
      }
    }

    resultMetadata.setOptionalData(Arrays.copyOf(additionalOptionCodeWords, additionalOptionCodeWordsIndex));
  } else if (codewords[codeIndex] == MACRO_PDF417_TERMINATOR) {
    resultMetadata.setLastSegment(true);
    codeIndex++;
  }

  return codeIndex;
}
 
private static int decodeMacroBlock(int[] codewords, int codeIndex, PDF417ResultMetadata resultMetadata)
    throws FormatException {
  if (codeIndex + NUMBER_OF_SEQUENCE_CODEWORDS > codewords[0]) {
    // we must have at least two bytes left for the segment index
    throw FormatException.getFormatInstance();
  }
  int[] segmentIndexArray = new int[NUMBER_OF_SEQUENCE_CODEWORDS];
  for (int i = 0; i < NUMBER_OF_SEQUENCE_CODEWORDS; i++, codeIndex++) {
    segmentIndexArray[i] = codewords[codeIndex];
  }
  resultMetadata.setSegmentIndex(Integer.parseInt(decodeBase900toBase10(segmentIndexArray,
      NUMBER_OF_SEQUENCE_CODEWORDS)));

  StringBuilder fileId = new StringBuilder();
  codeIndex = textCompaction(codewords, codeIndex, fileId);
  resultMetadata.setFileId(fileId.toString());

  if (codewords[codeIndex] == BEGIN_MACRO_PDF417_OPTIONAL_FIELD) {
    codeIndex++;
    int[] additionalOptionCodeWords = new int[codewords[0] - codeIndex];
    int additionalOptionCodeWordsIndex = 0;

    boolean end = false;
    while ((codeIndex < codewords[0]) && !end) {
      int code = codewords[codeIndex++];
      if (code < TEXT_COMPACTION_MODE_LATCH) {
        additionalOptionCodeWords[additionalOptionCodeWordsIndex++] = code;
      } else {
        switch (code) {
          case MACRO_PDF417_TERMINATOR:
            resultMetadata.setLastSegment(true);
            codeIndex++;
            end = true;
            break;
          default:
            throw FormatException.getFormatInstance();
        }
      }
    }

    resultMetadata.setOptionalData(Arrays.copyOf(additionalOptionCodeWords, additionalOptionCodeWordsIndex));
  } else if (codewords[codeIndex] == MACRO_PDF417_TERMINATOR) {
    resultMetadata.setLastSegment(true);
    codeIndex++;
  }

  return codeIndex;
}
 
源代码3 项目: weex   文件: DecodedBitStreamParser.java
private static int decodeMacroBlock(int[] codewords, int codeIndex, PDF417ResultMetadata resultMetadata)
    throws FormatException {
  if (codeIndex + NUMBER_OF_SEQUENCE_CODEWORDS > codewords[0]) {
    // we must have at least two bytes left for the segment index
    throw FormatException.getFormatInstance();
  }
  int[] segmentIndexArray = new int[NUMBER_OF_SEQUENCE_CODEWORDS];
  for (int i = 0; i < NUMBER_OF_SEQUENCE_CODEWORDS; i++, codeIndex++) {
    segmentIndexArray[i] = codewords[codeIndex];
  }
  resultMetadata.setSegmentIndex(Integer.parseInt(decodeBase900toBase10(segmentIndexArray,
      NUMBER_OF_SEQUENCE_CODEWORDS)));

  StringBuilder fileId = new StringBuilder();
  codeIndex = textCompaction(codewords, codeIndex, fileId);
  resultMetadata.setFileId(fileId.toString());

  if (codewords[codeIndex] == BEGIN_MACRO_PDF417_OPTIONAL_FIELD) {
    codeIndex++;
    int[] additionalOptionCodeWords = new int[codewords[0] - codeIndex];
    int additionalOptionCodeWordsIndex = 0;

    boolean end = false;
    while ((codeIndex < codewords[0]) && !end) {
      int code = codewords[codeIndex++];
      if (code < TEXT_COMPACTION_MODE_LATCH) {
        additionalOptionCodeWords[additionalOptionCodeWordsIndex++] = code;
      } else {
        switch (code) {
          case MACRO_PDF417_TERMINATOR:
            resultMetadata.setLastSegment(true);
            codeIndex++;
            end = true;
            break;
          default:
            throw FormatException.getFormatInstance();
        }
      }
    }

    resultMetadata.setOptionalData(Arrays.copyOf(additionalOptionCodeWords, additionalOptionCodeWordsIndex));
  } else if (codewords[codeIndex] == MACRO_PDF417_TERMINATOR) {
    resultMetadata.setLastSegment(true);
    codeIndex++;
  }

  return codeIndex;
}
 
private static int decodeMacroBlock(int[] codewords, int codeIndex, PDF417ResultMetadata resultMetadata)
    throws FormatException {
  if (codeIndex + NUMBER_OF_SEQUENCE_CODEWORDS > codewords[0]) {
    // we must have at least two bytes left for the segment index
    throw FormatException.getFormatInstance();
  }
  int[] segmentIndexArray = new int[NUMBER_OF_SEQUENCE_CODEWORDS];
  for (int i = 0; i < NUMBER_OF_SEQUENCE_CODEWORDS; i++, codeIndex++) {
    segmentIndexArray[i] = codewords[codeIndex];
  }
  resultMetadata.setSegmentIndex(Integer.parseInt(decodeBase900toBase10(segmentIndexArray,
      NUMBER_OF_SEQUENCE_CODEWORDS)));

  StringBuilder fileId = new StringBuilder();
  codeIndex = textCompaction(codewords, codeIndex, fileId);
  resultMetadata.setFileId(fileId.toString());

  if (codewords[codeIndex] == BEGIN_MACRO_PDF417_OPTIONAL_FIELD) {
    codeIndex++;
    int[] additionalOptionCodeWords = new int[codewords[0] - codeIndex];
    int additionalOptionCodeWordsIndex = 0;

    boolean end = false;
    while ((codeIndex < codewords[0]) && !end) {
      int code = codewords[codeIndex++];
      if (code < TEXT_COMPACTION_MODE_LATCH) {
        additionalOptionCodeWords[additionalOptionCodeWordsIndex++] = code;
      } else {
        switch (code) {
          case MACRO_PDF417_TERMINATOR:
            resultMetadata.setLastSegment(true);
            codeIndex++;
            end = true;
            break;
          default:
            throw FormatException.getFormatInstance();
        }
      }
    }

    resultMetadata.setOptionalData(Arrays.copyOf(additionalOptionCodeWords, additionalOptionCodeWordsIndex));
  } else if (codewords[codeIndex] == MACRO_PDF417_TERMINATOR) {
    resultMetadata.setLastSegment(true);
    codeIndex++;
  }

  return codeIndex;
}