• 大小: 186KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: libqrzlib  

资源简介

此源码包中含有libqr库的源码,以及zlib库和对应头文件。此libqr生成的库文件见https://download.csdn.net/download/u013919153/10308342

资源截图

代码片段和文件信息

/*
 * QR Code Generator Library
 *
 * Core routines were originally written by Junn Ohta.
 * based on qr.c Version 0.1: 2004/4/3 (Public Domain)
 *
 * @package     libqr
 * @author      Ryusuke SEKIYAMA 
 * @copyright   2006-2013 Ryusuke SEKIYAMA
 * @license     http://www.opensource.org/licenses/mit-license.php  MIT License
 */

#ifdef HAVE_CONFIG_H
#include “config.h“
#endif

#include “qr.h“
#include “qr_util.h“
#include “qr_private.h“
#include “qr_dwtable.h“

#define qrIsData(qr i j)  (((qr)->symbol[i][j] & QR_MM_DATA) != 0)
#define qrIsFunc(qr i j)  (((qr)->symbol[i][j] & QR_MM_FUNC) != 0)

QR_API const char *(*qrGetCurrentFunctionName)(void) = NULL;

/*
 * ライブラリのバージョンを返す
 */
QR_API const char *
qrVersion(void)
{
return LIBQR_VERSION;
}

/*
 * QRCodeオブジェクトを生成する
 */
QR_API QRCode *
qrInit(int version int mode int eclevel int masktype int *errcode)
{
QRCode *qr = NULL;

/*
 * メモリを確保する
 */
qr = (QRCode *)calloc(1 sizeof(QRCode));
if (qr == NULL) {
*errcode = QR_ERR_MEMORY_EXHAUSTED;
return NULL;
}
qr->dataword = (qr_byte_t *)calloc(1 QR_DWD_MAX);
qr->ecword   = (qr_byte_t *)calloc(1 QR_ECW_MAX);
qr->codeword = (qr_byte_t *)calloc(1 QR_CWD_MAX);
if (qr->dataword == NULL || qr->ecword == NULL || qr->codeword == NULL) {
*errcode = QR_ERR_MEMORY_EXHAUSTED;
qrDestroy(qr);
return NULL;
}

/*
 * 内部状態を初期化する
 */
qr->_symbol = NULL;
qr->symbol = NULL;
qr->source = NULL;
qr->srcmax = 0;
qr->srclen = 0;
qr->enclen = 0;
qr->delta1 = 0;
qr->delta2 = 0;
qr->errcode = QR_ERR_NONE;
qr->state = QR_STATE_BEGIN;

/*
 * 型番を設定する
*/
if (version == -1 || (version >= 1 && version <= QR_VER_MAX)) {
qr->param.version = version;
} else {
*errcode = QR_ERR_INVALID_VERSION;
qrDestroy(qr);
return NULL;
}

/*
 * 符号化モードを設定する
*/
if (mode == QR_EM_AUTO || (mode >= QR_EM_NUMERIC && mode < QR_EM_COUNT)) {
qr->param.mode = mode;
} else {
*errcode = QR_ERR_INVALID_MODE;
qrDestroy(qr);
return NULL;
}

/*
 * 誤り訂正レベルを設定する
*/
if (eclevel >= QR_ECL_L && eclevel < QR_EM_COUNT) {
qr->param.eclevel = eclevel;
} else {
*errcode = QR_ERR_INVALID_ECL;
qrDestroy(qr);
return NULL;
}

/*
 * マスクパターンを設定する
*/
if (masktype == -1 || (masktype >= 0 && masktype < QR_MPT_MAX)) {
qr->param.masktype = masktype;
} else {
*errcode = QR_ERR_INVALID_MPT;
qrDestroy(qr);
return NULL;
}

return qr;
}

/*
 * QRStructuredオブジェクトを生成する
 */
QR_API QRStructured *
qrsInit(int version int mode int eclevel int masktype int maxnum int *errcode)
{
QRStructured *st = NULL;

/*
 * メモリを確保する
 */
st = (QRStructured *)calloc(1 sizeof(QRStructured));
if (st == NULL) {
*errcode = QR_ERR_MEMORY_EXHAUSTED;
return NULL;
}

/*
 * 内部状態を初期化する
 */
st->parity = 0;
st->state = QR_STATE_BEGIN;

/*
 * 最大シンボル数を設定する
*/
if (maxnum >= 2 && masktype <= QR_STA_MAX) {
st->max = maxnum;
} else {
*errcode = QR_ERR_INVALID_MAXNUM;
qrsDestroy(st);
return NULL;
}

/*
 * 型番を設定する
 */
if (version 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1367  2013-08-10 02:27  crc.h
     文件        1045  2013-08-10 02:27  LICENSE
     文件       58387  2018-03-23 09:38  qr.c
     文件       12677  2018-03-23 10:28  qr.h
     文件       18213  2018-03-23 09:38  qrcmd.c
     文件        2553  2013-08-10 02:27  qrcmd.h
     文件       14068  2018-03-23 09:38  qrcnv.c
     文件        3631  2013-08-10 02:27  qrcnv.h
     文件        7214  2013-08-10 02:27  qrcnv_bmp.c
     文件       13309  2018-03-23 09:38  qrcnv_png.c
     文件        5996  2018-03-23 09:38  qrcnv_svg.c
     文件       16943  2018-03-23 09:38  qrcnv_tiff.c
     文件       37899  2013-08-10 02:27  qr_dwtable.h
     文件       27803  2013-08-10 02:27  qr_private.h
     文件        2531  2013-08-10 02:27  qr_util.h
     文件          63  2013-08-10 02:27  README
     文件         215  2013-08-10 02:27  TODO
     文件        8141  2018-01-12 09:10  zconf.h
     文件       41815  2018-03-23 09:30  zlib.h
     文件      483912  2018-01-12 09:10  zlib.lib

评论

共有 条评论

相关资源