计算机丢失zint.dll丢失

如何 在 .net 下使用 zint 生成条形码
1、首先你需要编译好的 zint 条码库。什么,你没有?那没关系,请参看:在 win32 下编译 zint 条码库。
2、启动 VISUAL STUDIO,新建一 “Windows Forms Application”,将 zint.dll、zlib1.dll 和 libpng15.dll 添加到项目中,属性窗口中设置“Copy to Output Directory”为”Copy always”。
3、打开“Form1.cs”代码文件,声明 zint:
/// &summary&
/// 条形码编码类型。
/// &/summary&
public enum Symbology
BARCODE_CODE11 = 1,
BARCODE_C25MATRIX = 2,
BARCODE_C25INTER = 3,
BARCODE_C25IATA = 4,
BARCODE_C25LOGIC = 6,
BARCODE_C25IND = 7,
BARCODE_CODE39 = 8,
BARCODE_EXCODE39 = 9,
BARCODE_EANX = 13,
BARCODE_EAN128 = 16,
BARCODE_CODABAR = 18,
BARCODE_CODE128 = 20,
BARCODE_DPLEIT = 21,
BARCODE_DPIDENT = 22,
BARCODE_CODE16K = 23,
BARCODE_CODE49 = 24,
BARCODE_CODE93 = 25,
BARCODE_FLAT = 28,
BARCODE_RSS14 = 29,
BARCODE_RSS_LTD = 30,
BARCODE_RSS_EXP = 31,
BARCODE_TELEPEN = 32,
BARCODE_UPCA = 34,
BARCODE_UPCE = 37,
BARCODE_POSTNET = 40,
BARCODE_MSI_PLESSEY = 47,
BARCODE_FIM = 49,
BARCODE_LOGMARS = 50,
BARCODE_PHARMA = 51,
BARCODE_PZN = 52,
BARCODE_PHARMA_TWO = 53,
BARCODE_PDF417 = 55,
BARCODE_PDF417TRUNC = 56,
BARCODE_MAXICODE = 57,
BARCODE_QRCODE = 58,
BARCODE_CODE128B = 60,
BARCODE_AUSPOST = 63,
BARCODE_AUSREPLY = 66,
BARCODE_AUSROUTE = 67,
BARCODE_AUSREDIRECT = 68,
BARCODE_ISBNX = 69,
BARCODE_RM4SCC = 70,
BARCODE_DATAMATRIX = 71,
BARCODE_EAN14 = 72,
BARCODE_CODABLOCKF = 74,
BARCODE_NVE18 = 75,
BARCODE_JAPANPOST = 76,
BARCODE_KOREAPOST = 77,
BARCODE_RSS14STACK = 79,
BARCODE_RSS14STACK_OMNI = 80,
BARCODE_RSS_EXPSTACK = 81,
BARCODE_PLANET = 82,
BARCODE_MICROPDF417 = 84,
BARCODE_ONECODE = 85,
BARCODE_PLESSEY = 86,
BARCODE_TELEPEN_NUM = 87,
BARCODE_ITF14 = 89,
BARCODE_KIX = 90,
BARCODE_AZTEC = 92,
BARCODE_DAFT = 93,
BARCODE_MICROQR = 97,
BARCODE_HIBC_128 = 98,
BARCODE_HIBC_39 = 99,
BARCODE_HIBC_DM = 102,
BARCODE_HIBC_QR = 104,
BARCODE_HIBC_PDF = 106,
BARCODE_HIBC_MICPDF = 108,
BARCODE_HIBC_BLOCKF = 110,
BARCODE_HIBC_AZTEC = 112,
BARCODE_AZRUNE = 128,
BARCODE_CODE32 = 129,
BARCODE_EANX_CC = 130,
BARCODE_EAN128_CC = 131,
BARCODE_RSS14_CC = 132,
BARCODE_RSS_LTD_CC = 133,
BARCODE_RSS_EXP_CC = 134,
BARCODE_UPCA_CC = 135,
BARCODE_UPCE_CC = 136,
BARCODE_RSS14STACK_CC = 137,
BARCODE_RSS14_OMNI_CC = 138,
BARCODE_RSS_EXPSTACK_CC = 139,
BARCODE_CHANNEL = 140,
BARCODE_CODEONE = 141,
BARCODE_GRIDMATRIX = 142
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct ZintSymbolStruct
public int whitespace_
public int border_
public int output_
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public int option_1;
public int option_2;
public int option_3;
public int show_
public int input_
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 25454)]
public byte[] encoded_
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.I4, SizeConst = 178)]
public int[] row_
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
public IntP
public int bitmap_
public int bitmap_
public IntP
[DllImport(&zint.dll&,
CallingConvention = CallingConvention.StdCall,
EntryPoint = &ZBarcode_Create&)]
public extern static IntPtr InitZint();
[DllImport(&zint.dll&,
CallingConvention = CallingConvention.StdCall,
EntryPoint = &ZBarcode_Encode_and_Buffer&,
CharSet = CharSet.Ansi)]
public extern static int ZintEncode(
ref ZintSymbolStruct symbol,
string input,
int length,
int rotate_angle);
[DllImport(&zint.dll&,
CallingConvention = CallingConvention.StdCall,
EntryPoint = &ZBarcode_Encode_and_Print&,
CharSet = CharSet.Ansi)]
public extern static int ZintEncodeAndPrint(
ref ZintSymbolStruct symbol,
string input,
int length,
int rotate_angle); 4、在窗体上绘制条码:
protected override void OnPaint(PaintEventArgs e)
// 初始化编码器
ZintSymbolStruct symbol = (ZintSymbolStruct)Marshal.PtrToStructure(InitZint(), typeof(ZintSymbolStruct));
// 设置编码类型
symbol.symbology = Symbology.BARCODE_QRCODE;
symbol.scale = 5;
// 编码内容
string s = &&;
ZintEncode(ref symbol, s, 0, 0);
// 创建一个位图,以便绘制条码
byte[] bitmapData = new byte[symbol.bitmap_width * symbol.bitmap_height * 3];
Marshal.Copy(symbol.bitmap, bitmapData, 0, bitmapData.Length);
Bitmap bitmap = new Bitmap(symbol.bitmap_width, symbol.bitmap_height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
System.Drawing.Imaging.BitmapData bmpData = bitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, bitmap.PixelFormat);
IntPtr ptr = bmpData.Scan0;
int bytes = bmpData.Stride * bitmap.H
byte[] rgbValues = new byte[bytes];
Marshal.Copy(ptr, rgbValues, 0, bytes);
// Zint 编码生成的位图数据存放格式为 RGB,需要将其转换为 BMP 数据存放格式 BGR
byte red, green,
int i = 0;
int l = 0;
for (row = 0; row & symbol.bitmap_ row++)
l = bmpData.Stride *
for (col = 0; col & symbol.bitmap_ col++)
red = bitmapData[i];
green = bitmapData[i + 1];
blue = bitmapData[i + 2];
rgbValues[l] =
rgbValues[l + 1] =
rgbValues[l + 2] =
System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);
bitmap.UnlockBits(bmpData);
e.Graphics.DrawImage(bitmap, 12, 12);
}5、将目标平台更改为“x86”,运行后即可查看效果。  附源码下载。
最新教程周点击榜
微信扫一扫1.Zint生成二维码
【1】从上述站点下载Zint工具
【2】安装Zint工具
【3】使用Zint工具生成二维码,注意选择类型,并输入要生成的文本,此处我输入的是Hello World,Everyone!
【4】保存Q-R二维码图像
这样我们的Q-R二维码图像就保存成功了【保存为hello.png】。
2.使用Zxing进行解码
Zxing是大名鼎鼎的条码处理开源项目,提供了多个平台上各种标准条形码的生成与解码工具。
Zxing提供了Android,Java,IPhone,Objective-C,C++,Jruby,Qt, .NET等各个平台库,其内容十分庞大,这里就不主要介绍了。下面,我们利用Zxing提供的JRuby项目进行简单的解码操作,把刚才生成的二维码图片作为输入,看看能否得到预期的输出。
【1】安装JRuby
由于Zxing原生于Java,因此它提供的库是JRuby版本的,于是先安装JRuby。(之所以选用JRuby是因为它比较轻量级,简单好用)
安装JRuby非常简单,只需3步:
(1)下载Jruby zip包
(2)解压JRuby
(3)将Jruby下bin目录所在路径加入PATH环境变量
(4)完成(在cmd中输入jruby -v测试是否安装成功)
【2】安装Zxing for ruby
打开cmd,输入jruby -S gem install zxing等待数秒,jruby会为我们装好zxing。此时,我们就可以在ruby代码中import zxing了!
【3】编写解码程序
解码程序非常简单,在刚才保存图片的文件夹下新建一个ruby文件【1.ruby】,程序代码只需3行:
1 require 'zxing'
3 result = ZXing.decode 'hello.png'
5 puts result
&简单的说,就是调用Zxing中的decode方法,输入参数为同目录下的&hello.png"文件,并将输入保存在result中。
【4】执行解码程序
打开cmd,执行jruby 1.rb,其输出结果果然和我们输入时相同。
3.基于.NET的简单编解码工具
【1】下载Zxing.NET工具
下载后,将其解压到任意位置,我们之后会用到其中的dll文件。
【2】在VS2013中建立winForm应用程序
【3】添加引用
添加引用时,请注意对应版本!!!选择对应版本的zxing.dll,将其加入到引用当中。
【4】设计GUI界面
这里就展示一下,详细请下载工程代码(附件)
(1)输入文本,点击Generate,生成QR-Code
(2)点击Save,选择路径,保存QR-Code
(3)点击Decoding,选择相应的QR-Code文件,解码QR-Code,并将文本显示在Result中!
核心代码1:生成QR-Code
核心代码2:解码QR-Code
【6】功能展示
(1)生成QR-Code
输入Hello World!点击Generate!
(2)保存QR-Code
(3)解码QR-Code
这次我们选择最开始我们利用Zint生成的hello.png,看看能否获得同样的结果。
我们看到,结果与JRuby输出的结果相同。
【7】最后项目源码分享,欢迎进一步探讨,Thank you for your support!
阅读(...) 评论()&&&&zint-libpng-zlib库
&zint-libpng-zlib库
为了方便大家,我已经将三个库编译好了。此资源包含已经编译好的zint、libpng和zlib。其中包含include头文件还有lib库文件,以及生成的dll文件。由于我编译的zlib是静态库,所以没有对应的DLL请别误以为我没上传。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
zint-libpng-zlib库
所需积分:3
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
zint-libpng-zlib库
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员5816人阅读
procedure TForm1.Button1Click(Sender: TObject);
// dll指针地址
mydll : PZS
// 用来接收的字符串
astr : AnsiS
// 创建DLL
mydll := ZBarcode_Create();
if (mydll = nil) then
// 创建画布
g := TBitmap.C
// 设置成二维码模式
mydll.symbology := BARCODE_QRCODE;
// 获取需要设计的二维码名称
astr := AnsiString(Edit1.Text);
ZBarcode_Encode_and_Buffer(mydll, PAnsiChar(astr),Length(astr),0);
ZBarcodeToBitmap(mydll, g);
Self.Canvas.StretchDraw(Rect(10,10,200,200), g);
ZBarcode_Delete(mydll);
生成的博客地址二维码
下载地址:http://download.csdn.net/detail/warrially/7370171
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:109336次
积分:1697
积分:1697
排名:第16848名
原创:49篇
转载:27篇
评论:32条
(3)(1)(1)(2)(1)(1)(2)(2)(2)(1)(1)(2)(2)(14)(1)(3)(3)(6)(1)(7)(4)(4)(2)(4)(7)(1)(1)(3)请问Delphi7下的ZIntQRCode控件,怎么打印二维码?谢谢!
[问题点数:200分]
请问Delphi7下的ZIntQRCode控件,怎么打印二维码?谢谢!
[问题点数:200分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 计算机丢失zint.dll 的文章

 

随机推荐