资源简介

EAN13条码生成,可以用于嵌入式相关设备开发(内部包含一套EAN13码生成代码+BMP文件生成代码),采用C语言,属于半原创吧[大部分代码是百度获取,作者不详,本人结合相关接口实现自己所需要的功能],采用VS2010工程,生成EAN13码(BMP文件格式),里面还包含一些自己收集的相关资料,现分享给大家,希望能帮助到一些朋友。

资源截图

代码片段和文件信息

/**
 * EAN13 Barcode Generator
 * Creates a boolean array corresponding to the EAN13 barcode for a string of
 * 12 numeric only characters.
 * From: https://github.com/ryankurte/ean13
 * based on: https://github.com/astrokin/EAN13BarcodeGenerator
 *
 * The MIT License (MIT)
 *
 * Copyright (c) 2015 Ryan Kurte
 *
 * Permission is hereby granted free of charge to any person obtaining a copy
 * of this software and associated documentation files (the “Software“) to deal
 * in the Software without restriction including without limitation the rights
 * to use copy modify merge publish distribute sublicense and/or sell
 * copies of the Software and to permit persons to whom the Software is
 * furnished to do so subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED “AS IS“ WITHOUT WARRANTY OF ANY KIND EXPRESS OR
 * IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM DAMAGES OR OTHER
 * LIABILITY WHETHER IN AN ACTION OF CONTRACT TORT OR OTHERWISE ARISING FROM
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

#include 
#include “ean13\ean13.h“
#include “BMP\BMP.h“\

#define snprintf _snprintf
#define BAR_HEIGHT_VAL 50 // 临时值
#define INPUT_MAX 15 // 暂定最大值

/*
    生成EAN13图片(BMP)
data EAN13数据
len 长度
*/
int ean13_bmp_creat(unsigned char *data unsigned char len)
{
unsigned char i;
unsigned char j;
int ret = -1;
ST_BITMAP *bitmap_handle;

bitmap_handle = st_g_CreateBitmap(len BAR_HEIGHT_VAL 24);
if (NULL != bitmap_handle)
{
ret = 0;
    for (i = 0; i < len; i++)
{
for (j = 0; j < BAR_HEIGHT_VAL; j++)
{
    if (0 != data[i])
    {
    vd_SetBitmapPixel(bitmap_handle i j BMP_RGB24(0 0 0)); // 黑色
}
else
{
vd_SetBitmapPixel(bitmap_handle i j BMP_RGB24(255 255 255)); // 白色
}
}
}
vd_g_SaveBitmap(bitmap_handle “test.bmp“);
vd_g_FreeBitmap(bitmap_handle);
}

    return ret;
}

/*
    生成EAN13图片(只生成条码,不包含以下数字等,默认:宽度为113个像素点,高度为50个像素点)
data EAN13数据
len 长度
*/
int ean13_pic_creat(unsigned char *data unsigned char len)
{
    unsigned char ean_size;
unsigned char *buf = NULL;
int ret = -1;

    ean_size = EAN13_width();
buf = (unsigned char *)malloc(ean_size);
if (NULL == buf)
{
    return ret;
}

    ret = EAN13_build(data buf);
if (0 != ret)
{
free(buf);
    return ret;
}

ret = ean13_bmp_creat(buf ean_size);
    free(buf);

    return ret;
}

/*
    注:输入的12位数据第一位将被重新计算,可能与输入的不同,将在12位之后增加1位校验码
*/
int main(void)
{
int ret = -1;
char data[INPUT_MAX + 1] = {0};
char format_strint[20] = {0};


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     136104  2019-09-14 23:12  条形码\EAN13\EAN码.docx

     文件       5518  2019-09-14 17:53  条形码\EAN13\Project\source\BMP\BMP.c

     文件       1109  2019-09-14 16:54  条形码\EAN13\Project\source\BMP\BMP.h

     文件       5328  2019-09-14 22:03  条形码\EAN13\Project\source\ean13\ean13.c

     文件       1768  2019-09-14 22:00  条形码\EAN13\Project\source\ean13\ean13.h

     文件        590  2019-09-14 22:20  条形码\EAN13\Project\source\ean13\stdbool.h

     文件       3444  2019-09-14 23:08  条形码\EAN13\Project\source\main.c

     文件      33280  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\Debug\ean13.exe

     文件     349752  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\Debug\ean13.ilk

     文件     429056  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\Debug\ean13.pdb

     文件      11830  2019-09-14 22:33  条形码\EAN13\Project\VC\ean13\ean13\Debug\BMP.obj

     文件       2178  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\cl.command.1.tlog

     文件       3974  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\CL.read.1.tlog

     文件       2154  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\CL.write.1.tlog

     文件        406  2019-09-14 22:05  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.exe.embed.manifest

     文件        472  2019-09-14 22:05  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.exe.embed.manifest.res

     文件        381  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.exe.intermediate.manifest

     文件         98  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.lastbuildstate

     文件       3651  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.log

     文件       6881  2019-09-14 22:20  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.obj

     文件        713  2019-09-14 21:53  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.vcxprojResolveAssemblyReference.cache

     文件          0  2019-09-14 21:53  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13.write.1.tlog

     文件        200  2019-09-14 22:05  条形码\EAN13\Project\VC\ean13\ean13\Debug\ean13_manifest.rc

     文件          2  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\link-cvtres.read.1.tlog

     文件          2  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\link-cvtres.write.1.tlog

     文件          2  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\link.10064-cvtres.read.1.tlog

     文件          2  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\link.10064-cvtres.write.1.tlog

     文件          2  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\link.10064.read.1.tlog

     文件          2  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\link.10064.write.1.tlog

     文件          2  2019-09-14 23:08  条形码\EAN13\Project\VC\ean13\ean13\Debug\link.4768-cvtres.read.1.tlog

............此处省略42个文件信息

评论

共有 条评论