本文整理汇总了C++中QRcode_free函数的典型用法代码示例。如果您正苦于以下问题:C++ QRcode_free函数的具体用法?C++ QRcode_free怎么用?C++ QRcode_free使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了QRcode_free函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: test_encode_kanji
void test_encode_kanji(int num)
{
QRcode *qrcode;
QRdata *qrdata;
int len, ret;
len = fill8bitString();
qrcode = QRcode_encodeString((char *)data, 0, num % 4, QR_MODE_8, 1);
if(qrcode == NULL) {
if(errno == ERANGE) return;
perror("test_encdoe_kanji aborted at QRcode_encodeString():");
return;
}
qrdata = QRcode_decode(qrcode);
if(qrdata == NULL) {
printf("#%d: Failed to decode this code.\n", num);
QRcode_free(qrcode);
return;
}
if(qrdata->size != len) {
printf("#%d: length mismatched (orig: %d, decoded: %d)\n", num, len, qrdata->size);
}
ret = memcmp(qrdata->data, data, len);
if(ret != 0) {
printf("#%d: data mismatched.\n", num);
}
QRdata_free(qrdata);
QRcode_free(qrcode);
}
开发者ID:01org,项目名称:irk_host_linux,代码行数:30,代码来源:test_monkey.c
示例2: test_encodeLongData
void test_encodeLongData(void)
{
QRinput *stream;
unsigned char data[7090];
int maxlength[4][4] = {{7089,5596,3993,3057},
{4296,3391,2420,1852},
{2953,2331,1663,1273},
{1817*2,1435*2,1024*2, 784*2}};
int i, l, len, ret;
QRcode *qrcode;
testStart("Encoding long data.");
for(i=QR_MODE_NUM; i<=QR_MODE_KANJI; i++) {
if(i != QR_MODE_KANJI) {
memset(data, '0', maxlength[i][0] + 1);
} else {
for(l=0; l<=maxlength[i][0]/2+1; l++) {
data[l*2] = 0x93; data[l*2+1] = 0x5f;
}
}
for(l=QR_ECLEVEL_L; l<=QR_ECLEVEL_H; l++) {
stream = QRinput_new2(0, l);
ret = QRinput_append(stream, i, maxlength[i][l], data);
assert_zero(ret, "Failed to add %d-byte %s to a QRinput\n", maxlength[i][l], modeStr[i]);
qrcode = QRcode_encodeInput(stream);
assert_nonnull(qrcode, "(QRcode_encodeInput) failed to encode %d-byte %s in level %d.\n", maxlength[i][l], modeStr[i], l);
if(qrcode != NULL) {
QRcode_free(qrcode);
}
QRinput_free(stream);
stream = QRinput_new2(0, l);
len = maxlength[i][l];
if(i == QR_MODE_KANJI) {
len += 2;
} else {
len += 1;
}
ret = QRinput_append(stream, i, len, data);
if(ret == 0) {
qrcode = QRcode_encodeInput(stream);
assert_null(qrcode, "(QRcode_encodeInput) incorrectly succeeded to encode %d-byte %s in level %d.\n", len, modeStr[i], l);
if(qrcode != NULL) {
printf("version: %d\n", qrcode->version);
QRcode_free(qrcode);
}
}
QRinput_free(stream);
}
}
testFinish();
}
开发者ID:937447974,项目名称:libqrencode,代码行数:54,代码来源:test_qrencode.c
示例3: test_encodeData
void test_encodeData(void)
{
QRcode *qrcode;
testStart("Test QRencode_encodeData.");
qrcode = QRcode_encodeData(0, NULL, 0, QR_ECLEVEL_H);
assert_null(qrcode, "QRcode_encodeData(NULL, 0) returned something.\n");
if(qrcode != NULL) QRcode_free(qrcode);
qrcode = QRcode_encodeData(10, (unsigned char*)"test\0\0test", 0, QR_ECLEVEL_H);
assert_nonnull(qrcode, "QRcode_encodeData() failed.\n");
if(qrcode != NULL) QRcode_free(qrcode);
testFinish();
}
开发者ID:zapster,项目名称:libqrencode,代码行数:15,代码来源:test_qrencode.c
示例4: test_decodeVeryLong
void test_decodeVeryLong(void)
{
char str[4000];
int i;
QRcode *qrcode;
QRdata *qrdata;
testStart("Test code words (very long string).");
for(i=0; i<3999; i++) {
str[i] = decodeAnTable[(int)drand(45)];
}
str[3999] = '\0';
qrcode = QRcode_encodeString(str, 0, QR_ECLEVEL_L, QR_MODE_8, 0);
qrdata = QRcode_decode(qrcode);
assert_nonnull(qrdata, "Failed to decode.\n");
if(qrdata != NULL) {
assert_equal(strlen(str), qrdata->size, "Lengths of input/output mismatched.\n");
assert_zero(strncmp(str, (char *)(qrdata->data), qrdata->size), "Decoded data %s is different from the original %s\n", qrdata->data, str);
}
if(qrdata != NULL) QRdata_free(qrdata);
if(qrcode != NULL) QRcode_free(qrcode);
testFinish();
}
开发者ID:zapster,项目名称:libqrencode,代码行数:27,代码来源:test_qrencode.c
示例5: test_encodeTooLongMQR
void test_encodeTooLongMQR(void)
{
QRcode *code;
char *data[] = {"012345", "ABC0EFG", "0123456789", "0123456789ABCDEFG"};
testStart("Encode too large data for MQR.");
code = QRcode_encodeStringMQR(data[0], 1, QR_ECLEVEL_L, QR_MODE_8, 0);
assert_null(code, "6 byte length numeric string was accepted to version 1.\n");
assert_equal(errno, ERANGE, "errno != ERANGE\n");
code = QRcode_encodeStringMQR(data[1], 2, QR_ECLEVEL_L, QR_MODE_8, 0);
assert_null(code, "7 byte length alphanumeric string was accepted to version 2.\n");
assert_equal(errno, ERANGE, "errno != ERANGE\n");
code = QRcode_encodeString8bitMQR(data[2], 3, QR_ECLEVEL_L);
assert_null(code, "9 byte length 8bit string was accepted to version 3.\n");
assert_equal(errno, ERANGE, "errno != ERANGE\n");
code = QRcode_encodeString8bitMQR(data[3], 4, QR_ECLEVEL_L);
assert_null(code, "16 byte length 8bit string was accepted to version 4.\n");
assert_equal(errno, ERANGE, "errno != ERANGE\n");
testFinish();
if(code != NULL) {
printQRcode(code);
QRcode_free(code);
}
}
开发者ID:zapster,项目名称:libqrencode,代码行数:26,代码来源:test_qrencode.c
示例6: painter
void QRcodeWidget::paintEvent(QPaintEvent *event)
{
if (this->code != NULL) {
QPainter painter(this);
painter.setPen(Qt::NoPen);
int codeWidth = code->width;
int blkw = this->size().width() / codeWidth;
int blkh = this->size().height() / codeWidth;
for (int y = 0 ; y < codeWidth; y++) {
for (int x = 0 ; x < codeWidth; x++) {
int point = code->data[y * codeWidth + x];
if (point & 1) {
painter.setBrush(QBrush(Qt::black));
} else {
painter.setBrush(QBrush(Qt::white));
}
painter.drawRect(x * blkw, y * blkh, blkw, blkh);
}
}
QRcode_free(code);
code = NULL;
}
}
开发者ID:binape,项目名称:ybb-apitool,代码行数:27,代码来源:qrcodewidget.cpp
示例7: printQRCode
void printQRCode(const char *url) {
QRcode *qrcode = QRcode_encodeString("http://localhost/btctl.apk", /*version*/0, QR_ECLEVEL_M, /*hint*/ QR_MODE_8, /*casesensitive*/ 1 );
printf("qrcode: %p\n", qrcode);
if(qrcode) {
// const char *BYTES[] = {" ", /*50%oben*/ "\xE2\x96\x80", /*50%unten*/ "\xE2\x96\x84", /*100%*/ "\xE2\x96\x88"};
const char *BYTES_INVERTED[] = {/*100%*/ "\xE2\x96\x88", /*50%unten*/ "\xE2\x96\x84", /*50%oben*/ "\xE2\x96\x80", " "};
printf("version: %d, width: %d\n\n",qrcode->version, qrcode->width);
for(int x=0; x < qrcode->width+2; x++) printf(BYTES_INVERTED[1]);
printf("\n");
for(int y=0; y < qrcode->width; y++) {
printf(BYTES_INVERTED[0]);
for(int x=0; x < qrcode->width; x++) {
int val=qrcode->data[y*qrcode->width + x] & 1;
if((y+1) < qrcode->width) {
val|=(qrcode->data[(y+1)*qrcode->width + x] & 1) << 1; // nächste zeile
}
// 1=black/0=white
printf(BYTES_INVERTED[val]);
}
y++;
printf(BYTES_INVERTED[0]);
printf("\n");
}
for(int x=0; x < qrcode->width+2; x++) printf(BYTES_INVERTED[2]);
printf("\n");
QRcode_free(qrcode);
printf("\n");
} else {
printf("error: %m\n"); // %m = strerror(errno) ohne argument
exit(1);
}
return;
}
开发者ID:ferbar,项目名称:btcontrol,代码行数:35,代码来源:qrcode.cpp
示例8: addressToPTB
static shared_ptr<PixelTransferBuffer> addressToPTB(const NetAddress& addr) {
std::string str = std::string("HTTP://") + addr.ipString() + ":" + format("%d", addr.port());
debugAssert(str.size() <= 28);
QRcode* qrcode = encode(str.c_str(), (int)str.size());
const int N = qrcode->width;
shared_ptr<PixelTransferBuffer> buffer = CPUPixelTransferBuffer::create(N, N, ImageFormat::L8());
unorm8* dst = reinterpret_cast<unorm8*>(buffer->mapWrite());
const unsigned char* src = qrcode->data;
const unorm8 BLACK = unorm8::fromBits(0x00);
const unorm8 WHITE = unorm8::fromBits(0xFF);
for (int i = 0; i < N * N; ++i) {
// The bytes are in the opposite convention
dst[i] = (src[i] & 1) ? BLACK : WHITE;
}
dst = NULL;
buffer->unmap();
QRcode_free(qrcode);
return buffer;
}
开发者ID:jackpoz,项目名称:G3D-backup,代码行数:25,代码来源:qr.cpp
示例9: getURI
void QRCodeDialog::genCode()
{
QString uri = getURI();
if (uri != "")
{
ui->lblQRCode->setText("");
QRcode *code = QRcode_encodeString(uri.toUtf8().constData(), 0, QR_ECLEVEL_L, QR_MODE_8, 1);
if (!code)
{
ui->lblQRCode->setText(tr("Error encoding URI into QR Code."));
return;
}
myImage = QImage(code->width + 8, code->width + 8, QImage::Format_RGB32);
myImage.fill(0xffffff);
unsigned char *p = code->data;
for (int y = 0; y < code->width; y++)
{
for (int x = 0; x < code->width; x++)
{
myImage.setPixel(x + 4, y + 4, ((*p & 1) ? 0x0 : 0xffffff));
p++;
}
}
QRcode_free(code);
ui->lblQRCode->setPixmap(QPixmap::fromImage(myImage).scaled(300, 300));
}
else
ui->lblQRCode->setText(tr("Resulting URI too long, try to reduce the text for label / message."));
}
开发者ID:Iamhumanareyou,项目名称:EmprendeCoin,代码行数:31,代码来源:qrcodedialog.cpp
示例10: test_encode
void test_encode(void)
{
QRinput *stream;
char num[9] = "01234567";
unsigned char *frame;
int err = 0;
int x, y, w;
int mask;
QRcode *qrcode;
testStart("Test encode (1-M)");
stream = QRinput_new();
QRinput_append(stream, QR_MODE_NUM, 8, (unsigned char *)num);
for(mask=0; mask<8; mask++) {
QRinput_setVersion(stream, 1);
QRinput_setErrorCorrectionLevel(stream, QR_ECLEVEL_M);
qrcode = QRcode_encodeMask(stream, mask);
w = qrcode->width;
frame = qrcode->data;
for(y=0; y<w; y++) {
for(x=0; x<w; x++) {
if(((m1pat[mask][y] >> (20-x)) & 1) != (frame[y*w+x]&1)) {
printf("Diff in mask=%d (%d,%d)\n", mask, x, y);
err++;
}
}
}
QRcode_free(qrcode);
}
QRinput_free(stream);
testEnd(err);
}
开发者ID:zapster,项目名称:libqrencode,代码行数:32,代码来源:test_qrencode.c
示例11: test_format
void test_format(void)
{
unsigned char *frame, *masked;
int version, mask, width, dmask;
QRecLevel level, dlevel;
QRcode *code;
int ret;
testStart("Checking format info.");
for(version=1; version<=QRSPEC_VERSION_MAX; version++) {
frame = QRspec_newFrame(version);
width = QRspec_getWidth(version);
for(level=0; level<4; level++) {
for(mask=0; mask<8; mask++) {
masked = Mask_makeMask(width, frame, mask, level);
code = QRcode_new(version, width, masked);
ret = QRcode_decodeFormat(code, &dlevel, &dmask);
assert_zero(ret, "Something wrong in format info.\n");
assert_equal(dlevel, level, "Decoded level is wrong: %d, expected %d", dlevel, level);
assert_equal(dmask, mask, "Decoded mask is wrong: %d, expected %d", dlevel, level);
QRcode_free(code);
}
}
free(frame);
}
testFinish();
}
开发者ID:01org,项目名称:irk_host_linux,代码行数:27,代码来源:test_mask.c
示例12: test_newframe
void test_newframe(void)
{
unsigned char buf[QRSPEC_WIDTH_MAX * QRSPEC_WIDTH_MAX];
int i, width;
size_t len;
FILE *fp;
unsigned char *frame;
QRcode *qrcode;
unsigned int version;
testStart("Checking newly created frame.");
fp = fopen("frame", "rb");
if(fp == NULL) {
perror("Failed to open \"frame\":");
abort();
}
for(i=1; i<=QRSPEC_VERSION_MAX; i++) {
frame = QRspec_newFrame(i);
width = QRspec_getWidth(i);
len = fread(buf, 1, width * width, fp);
if((int)len != width * width) {
perror("Failed to read the pattern file:");
abort();
}
assert_zero(memcmp(frame, buf, len), "frame pattern mismatch (version %d)\n", i);
qrcode = QRcode_new(i, width, frame);
version = QRcode_decodeVersion(qrcode);
assert_equal(version, i, "Decoded version number is wrong: %d, expected %d.\n", version, i);
QRcode_free(qrcode);
}
testFinish();
fclose(fp);
}
开发者ID:937447974,项目名称:libqrencode,代码行数:34,代码来源:test_qrspec.c
示例13: test_oddBitCalcMQR
void test_oddBitCalcMQR(void)
{
/* test issue #25 (odd bits calculation bug) */
/* test pattern contributed by vlad417 */
TestString tests[] = {
{"46194", 1, QR_ECLEVEL_L, QR_MODE_8, 1},
{"WBA5Y47YPQQ", 3, QR_ECLEVEL_L, QR_MODE_8, 1}
};
QRcode *qrcode;
QRdata *qrdata;
int i;
testStart("Odd bits calculation bug checking (MQR).");
for(i=0; i<_countof(tests); i++) {
qrcode = QRcode_encodeStringMQR(tests[i].str,
tests[i].version,
tests[i].level,
tests[i].hint,
tests[i].casesensitive);
assert_nonnull(qrcode, "Failed to encode: %s\n", tests[i].str);
if(qrcode == NULL) continue;
qrdata = QRcode_decodeMQR(qrcode);
assert_nonnull(qrdata, "Failed to decode.\n");
assert_zero(strcmp((char *)qrdata->data, tests[i].str), "Decoded data (%s) mismatched (%s)\n", (char *)qrdata->data, tests[i].str);
if(qrdata != NULL) QRdata_free(qrdata);
QRcode_free(qrcode);
}
testFinish();
}
开发者ID:937447974,项目名称:libqrencode,代码行数:31,代码来源:test_qrencode.c
示例14: QRcode_free
QRWidget::~QRWidget()
{
if(qr != NULL)
{
QRcode_free(qr);
}
}
开发者ID:wylnii,项目名称:QRScaner,代码行数:7,代码来源:qrwidget.cpp
示例15: test_encode3
void test_encode3(void)
{
QRcode *code1, *code2;
QRinput *input;
testStart("Compare encodeString and encodeInput");
code1 = QRcode_encodeString("0123456", 0, QR_ECLEVEL_L, QR_MODE_8, 0);
input = QRinput_new2(0, QR_ECLEVEL_L);
QRinput_append(input, QR_MODE_NUM, 7, (unsigned char *)"0123456");
code2 = QRcode_encodeInput(input);
testEnd(memcmp(code1->data, code2->data, code1->width * code1->width));
QRcode_free(code1);
QRcode_free(code2);
QRinput_free(input);
}
开发者ID:zapster,项目名称:libqrencode,代码行数:16,代码来源:test_qrencode.c
示例16: timeStr
void qrcode_clock::updateTime()
{
// get time
QDateTime time = QDateTime::currentDateTime();
QString timeStr(QString::number(time.toTime_t()));
// encode time as QR code
QRcode *qrCodeMatrix(QRcode_encodeString8bit(timeStr.toStdString().c_str(), 0, QR_ECLEVEL_H));
if (!qrCodeMatrix) {
qDebug() << "kein QrCode erzeugt";
return;
}
// transfer QR code into picture
m_qrImage = new QImage(qrCodeMatrix->width, qrCodeMatrix->width, QImage::Format_Mono);
for (int i = 0; i < qrCodeMatrix->width; ++i) {
for (int j = 0; j < qrCodeMatrix->width; ++j) {
m_qrImage->setPixel(j, i, qrCodeMatrix->data[i * qrCodeMatrix->width + j] & 1);
}
}
QRcode_free(qrCodeMatrix);
m_qrImage->setColor(0, qRgb(255,255,255));
m_qrImage->setColor(1, qRgb(0,0,0));
m_qrClock->setPixmap(QPixmap::fromImage(*m_qrImage));
// show human readable time
m_humanClock->setText(time.toUTC().toString() + " UTC");
}
开发者ID:vollkorn1982,项目名称:qrcode_clock,代码行数:32,代码来源:qrcode_clock.cpp
示例17: QRcode_encodeString
/*
* Qrcode data encoding, implements Barcode2dBase::encode()
*/
bool BarcodeQrcode::encode( const std::string& cookedData, Matrix<bool>& encodedData )
{
QRcode *qrcode = QRcode_encodeString( cookedData.c_str(), 0, QR_ECLEVEL_M, QR_MODE_8, 1 );
if ( qrcode == NULL )
{
return false;
}
int w = qrcode->width;
encodedData.resize( w, w );
for ( int iy = 0; iy < w; iy++ )
{
for ( int ix = 0; ix < w; ix++ )
{
encodedData[iy][ix] = qrcode->data[ iy*w + ix ] & 0x01;
}
}
QRcode_free( qrcode );
QRcode_clearCache();
return true;
}
开发者ID:bigboss888,项目名称:glabels-qt,代码行数:30,代码来源:BarcodeQrcode.cpp
示例18: painter
void QRWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QRcode *qrcode = QRcode_encodeString(data.constData(), 1, QR_ECLEVEL_L, QR_MODE_8, 1);
if (qrcode != NULL) {
QColor fg(Qt::black);
QColor bg(Qt::white);
painter.setBrush(bg);
painter.setPen(Qt::NoPen);
const double w = width();
const double h = height();
painter.drawRect(0, 0, w, h);
painter.setBrush(fg);
const int s = qrcode->width > 0 ? qrcode->width : 1;
const double aspect = w / h;
const double scale = ((aspect > 1.0) ? h : w) / s;
for(int y = 0; y < s; y++){
const int yy = y * s;
for(int x = 0; x < s; x++){
const int xx = yy + x;
const unsigned char b = qrcode->data[xx];
if(b &0x01){
const double rx1 = x * scale, ry1 = y * scale;
QRectF r(rx1, ry1, scale, scale);
painter.drawRects(&r,1);
}
}
}
QRcode_free(qrcode);
}
else {
qWarning() << tr("Generating QR code failed.");
}
}
开发者ID:CzBiX,项目名称:shadowsocks-qt5,代码行数:34,代码来源:qrwidget.cpp
示例19: QRcode_encodeString
QImage TcQrencode::encodeImage(const QString& s, int bulk)
{
QImage ret;
QRcode* qr = QRcode_encodeString(s.toUtf8(), 1, QR_ECLEVEL_Q, QR_MODE_8, 0);
if ( qr != NULL )
{
int allBulk = (qr->width) * bulk;
ret = QImage(allBulk, allBulk, QImage::Format_Mono);
QPainter painter(&ret);
QColor fg("black");
QColor bg("white");
painter.setBrush(bg);
painter.setPen(Qt::NoPen);
painter.drawRect(0, 0, allBulk, allBulk);
painter.setBrush(fg);
for( int y=0; y<qr->width; y++ )
{
for( int x=0; x<qr->width; x++ )
{
if ( qr->data[y*qr->width+x] & 1 )
{
QRectF r(x*bulk, y*bulk, bulk, bulk);
painter.drawRects(&r, 1);
}
}
}
QRcode_free(qr);
}
return ret;
}
开发者ID:eilin1208,项目名称:QT_Test,代码行数:32,代码来源:tcQrencode.cpp
示例20: gl_barcode_iec18004_new
lglBarcode *
gl_barcode_iec18004_new (const gchar *id,
gboolean text_flag,
gboolean checksum_flag,
gdouble w,
gdouble h,
const gchar *digits)
{
gint i_width, i_height;
lglBarcode *gbc;
QRcode *qrcode;
if ( *digits == '\0' )
{
return NULL;
}
i_width = 0;
i_height = 0;
qrcode = QRcode_encodeString ((const char *)digits, 0, QR_ECLEVEL_M,
QR_MODE_8, 1);
if (qrcode == NULL)
{
return NULL;
}
i_width = i_height = qrcode->width;
gbc = render_iec18004 ((const gchar *)qrcode->data, i_width, i_height,
w, h);
QRcode_free ( qrcode );
return gbc;
}
开发者ID:DroiDev,项目名称:glabels,代码行数:35,代码来源:bc-iec18004.c
注:本文中的QRcode_free函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论