⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qrspec.h

📁 二维码QR的linux平台下的编码源代码
💻 H
字号:
/* * qrencode - QR Code encoder * * QR Code specification in convenient format.  * Copyright (C) 2006,2007 Kentaro Fukuchi <fukuchi@megaui.net> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */#ifndef __QRSPEC_H__#define __QRSPEC_H__#include "qrencode.h"/****************************************************************************** * Version and capacity *****************************************************************************//** * Maximum version (size) of QR-code symbol. */#define QRSPEC_VERSION_MAX 40/** * Maximum width of a symbol */#define QRSPEC_WIDTH_MAX 177/** * Return maximum data code length (bytes) for the version. * @param version * @param level * @return maximum size (bytes) */extern int QRspec_getDataLength(int version, QRecLevel level);/** * Return maximum error correction code length (bytes) for the version. * @param version * @param level * @return ECC size (bytes) */extern int QRspec_getECCLength(int version, QRecLevel level);/** * Return a version number that satisfies the input code length. * @param size input code length (byte) * @param level * @return version number */extern int QRspec_getMinimumVersion(int size, QRecLevel level);/** * Return the width of the symbol for the version. * @param version * @return width */extern int QRspec_getWidth(int version);/** * Return the numer of remainder bits. * @param version * @return number of remainder bits */extern int QRspec_getRemainder(int version);/****************************************************************************** * Length indicator *****************************************************************************//** * Return the size of lenght indicator for the mode and version. * @param mode * @param version * @return the size of the appropriate length indicator (bits). */extern int QRspec_lengthIndicator(QRencodeMode mode, int version);/** * Return the maximum length for the mode and version. * @param mode * @param version * @return the maximum length (bytes) */extern int QRspec_maximumWords(QRencodeMode mode, int version);/****************************************************************************** * Error correction code *****************************************************************************//** * Return an array of ECC specification. * @param version * @param level * @return an array of ECC specification contains as following: * {# of type1 blocks, # of data code, # of ecc code, *  # of type2 blocks, # of data code, # of ecc code} * It can be freed by calling free(). */int *QRspec_getEccSpec(int version, QRecLevel level);#define QRspec_rsBlockNum(__spec__) (__spec__[0] + __spec__[3])#define QRspec_rsBlockNum1(__spec__) (__spec__[0])#define QRspec_rsDataCodes1(__spec__) (__spec__[1])#define QRspec_rsEccCodes1(__spec__) (__spec__[2])#define QRspec_rsBlockNum2(__spec__) (__spec__[3])#define QRspec_rsDataCodes2(__spec__) (__spec__[4])#define QRspec_rsEccCodes2(__spec__) (__spec__[5])/****************************************************************************** * Alignment pattern *****************************************************************************//** * Array of positions of alignment patterns. * X and Y coordinates are interleaved into 'pos'. */typedef struct {	int n;		//< Number of patterns	int *pos;} QRspec_Alignment;/** * Return positions of alignment patterns. * @param version * @return a QRspec_Alignment object that contains all of positions of alignment * patterns. */extern QRspec_Alignment *QRspec_getAlignmentPattern(int version);/** * Free QRspec_Alignment instance. * @param al QRspec_Alignment instance. */extern void QRspec_freeAlignment(QRspec_Alignment *al);/****************************************************************************** * Version information pattern *****************************************************************************//** * Return BCH encoded version information pattern that is used for the symbol * of version 7 or greater. Use lower 18 bits. * @param version * @return BCH encoded version information pattern */extern unsigned int QRspec_getVersionPattern(int version);/****************************************************************************** * Format information *****************************************************************************//** * Return BCH encoded format information pattern. * @param mask * @param level * @return BCH encoded format information pattern */extern unsigned int QRspec_getFormatInfo(int mask, QRecLevel level);/****************************************************************************** * Frame *****************************************************************************//** * Return a copy of initialized frame. * When the same version is requested twice or more, a copy of cached frame * is returned. * @param version * @return Array of unsigned char. You can free it by free(). *//* WARNING: Thread unsafe!!! */extern unsigned char *QRspec_newFrame(int version);#endif /* __QRSPEC_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -