二维码,条形码

/// <summary>
/// 生成二维码的按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn1_Click(object sender, EventArgs e)
{
//判断输入的文本框是否为空
if (this.txt1.Text.Trim() != "")
{
//获取文本框的 字符
string ecodestring = txt1.Text;
//初始化二维码方法
QRCodeEncoder qrcode = new QRCodeEncoder();
//根据文本框的内容来生成二维码图片,计算算法是Encoding.UTF8
//UTF-8 中文字符3个字节、英文字符1字节,UTF8最多只能编码122个字节即40个汉字
picBox1.Image = qrcode.Encode(ecodestring, Encoding.UTF8);
txt2.Text = "";
}
else
{
MessageBox.Show("请输入需要转换的字符");
}
}
/// <summary>
/// 保存二维码图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn4_Click(object sender, EventArgs e)
{
if (picBox1.Image != null)
{
//用户选择保存文件的位置
SaveFileDialog save = new SaveFileDialog();
save.Title = "保存二维码图片";//标题
save.Filter = "图片文件夹(*.jpg)|*.jpg";//文件类型框中出现的内容
if (save.ShowDialog() == DialogResult.OK)
try
{
picBox1.Image.Save(save.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
MessageBox.Show("保存成功");
picBox1.Image = null;
txt1.Text = "";
}
catch
{

MessageBox.Show("保存失败");
}
}
}
/// <summary>
/// 上传二维码图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn3_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();//创建一个对话框对象
ofd.Title = "请选择上传的图片";//为对话框设置标题
ofd.Filter = "图片格式|*";//设置筛选的图片格式
ofd.Multiselect = false;//是否允许多选
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)//判断选择文件是否OK
{
string fliePath = ofd.FileName;//获取文件名
txt2.Text = fliePath;//在文本框中显示文件名
int postion = fliePath.LastIndexOf("\\");
string fileName = fliePath.Substring(postion + 1);
using (Stream stream = ofd.OpenFile())
{
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
stream.CopyTo(fs);
fs.Flush();
}
this.picBox1.ImageLocation = fileName;
}
}
}
/// <summary>
/// 将上传的二维码解码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn2_Click(object sender, EventArgs e)
{
System.Threading.Thread t = new System.Threading.Thread(ss);
t.IsBackground = true;
t.Start();
}
/// <summary>
/// 解码的方法
/// </summary>
private void ss()
{
if (txt2.Text != "")
{
string tt = "";
try
{
Invoke((EventHandler)delegate
{
btn2.Enabled = false;
btn2.Text = "Waiting......";
picBox1.Image = new Bitmap(txt2.Text);
});
QRCodeDecoder qrde = new QRCodeDecoder();
string txtmsg = qrde.decode(new QRCodeBitmapImage(new Bitmap(picBox1.Image)), Encoding.UTF8);
tt = txtmsg;
}
catch
{

tt = "识别失败";
}
Invoke((EventHandler)delegate
{
txt1.Text = tt;
btn2.Enabled = true;
btn2.Text = "解码OK";
});
}
System.Threading.Thread.CurrentThread.Abort();
}

/// <summary>
/// 生成条形码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn5_Click(object sender, EventArgs e)
{
Regex rg = new Regex("^[0-9]{12}$");
if (!rg.IsMatch(txt1.Text))
{
MessageBox.Show("本例子采用EAN_13编码,需要输入12位数字");
return;
}

try
{
EncodingOptions options = null;
BarcodeWriter writer = null;
options = new EncodingOptions
{
Width = picBox1.Width,
Height = picBox1.Height
};
writer = new BarcodeWriter();
writer.Format = BarcodeFormat.ITF;
writer.Options = options;

Bitmap bitmap = writer.Write(txt1.Text);
picBox1.Image = bitmap;
}
catch
{
MessageBox.Show("失败");
}
}
/// <summary>
/// 保存条形码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn6_Click(object sender, EventArgs e)
{

}
////////////////////////////////生成带图片的二维码////////////////////////////////////////////////////////////
private object logoImg; //用于存放logo图片
///<summary>
///获取二维码生成图片
///</summary>
///<returns></returns>
public Bitmap getcode(string writeStr)
{

QRCodeEncoder qrcode = new QRCodeEncoder();
//根据文本框的内容来生成二维码图片,计算算法是Encoding.UTF8
Bitmap image = qrcode.Encode(writeStr, Encoding.UTF8);//这是一种编码格式
//QRCodeEncoder qRCodeEncoder = new QRCodeEncoder();
//qRCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//这也是一种编码格式
//qRCodeEncoder.QRCodeVersion = 4; //设置编码测量度
//qRCodeEncoder.QRCodeVersion = 7; //设置编码版本
//qRCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder. ERROR_CORRECTION.M; //设置错误校验
//Bitmap image = qRCodeEncoder.Encode(writeStr);
return image;
}

/// <summary>
/// 生成带图片的二维码,需要先上传logoA在根据内容生成二维码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn7_Click(object sender, EventArgs e)
{
if (txt1.Text.Trim()!= "") //验证输入的生成内容是否为空
{
Bitmap bCode = getcode(txt1.Text); // 获取二维码图片
if (logoImg == null)
{ picBox1.Image = bCode; }
else
{
Bitmap bLogo = logoImg as Bitmap; //获取logo图片对象
bLogo = new Bitmap(bLogo, 50, 50); //改变图片的大小这里我们设置为30
int Y = bCode.Height;
int X = bCode.Width;
Point point = new Point(X / 2 - 25, Y / 2-30);//logo图片绘制到二维码上,这里将简单计算一下logo所在的坐标 以二维码的左上角为原点坐标
Graphics g = Graphics.FromImage(bCode);//创建一个画布
g.DrawImage(bLogo, point);//将logo图片绘制到二维码图片上
picBox1.Image = bCode;
}
}
else
{
MessageBox.Show("输入生成内容!");
}

}
/// <summary>
/// 上传Logo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn8_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();//文件打开对话框
openFileDialog.Filter = "JPEG|*.jpeg;*.jpg|位图文件|*.bmp|所有文件|*.*";//只能打开我们设置的这几类文件
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string fileName = openFileDialog.FileName;
Bitmap newBmp = new Bitmap(fileName);
Bitmap bmp = new Bitmap(newBmp);
picBox1.Image = bmp;
logoImg = bmp;
}
}
/// <summary>
/// 清空所有
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn9_Click(object sender, EventArgs e)
{
this.txt1.Text = "";
this.txt2.Text = "";
this.picBox1.Image = null;

}

时间: 2024-10-15 13:41:53

二维码,条形码的相关文章

使用IOS7原生API进行二维码条形码的扫描

使用IOS7原生API进行二维码条形码的扫描 IOS7之前,开发者进行扫码编程时,一般会借助第三方库.常用的是ZBarSDK,IOS7之后,系统的AVMetadataObject类中,为我们提供了解析二维码的接口.经过测试,使用原生API扫描和处理的效率非常高,远远高于第三方库. 一.使用方法示例 官方提供的接口非常简单,代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Android基于Google Zxing实现二维码/条形码扫描、生成二维码/条形码

 二维码/条形码生成器 二维码/条形码扫描器 一.二维码与条形码工作原理 目前的很多应用上都有扫码功能,当时微信推出二维码扫码功能时,觉得imagine,通过一张简单的图片就能扫描添加还有,还有分享名片功能(也是一张二维码图片,识别扫描). 下面小编将通过文章主要介绍QRCode方面技术. QRCode是被广泛应用的一种二维码,解码速度快.二维码相对于条形码来说,二维码的存储数据量更大,空间利用率高,有一定的容错性. 二维码原理介绍: 二维码是用某种特定的几何图形按一定的规律在平面上分布的黑

iOS- 详解如何使用ZBarSDK集成扫描二维码/条形码,点我!

1.前言 目前市场主流APP里,二维码/条形码集成主要分两种表现形式来集成: a. 一种是调用手机摄像头并打开系统照相机全屏去拍摄 b. 一种是自定义照相机视图的frame,自己控制并添加相关扫码指南 今天我就用ZBarSDK来实现上诉两种主流集成方式,与大家共同交流学习/ 2.第一步导入ZBarSDK 可以从github上下载好ZBarSDK,导入项目,并且导入相关iOS.framework 如图: 3.集成扫描二维码/条形码 3.1.调用手机摄像头并打开系统照相机全屏去拍摄 实现效果图: 1

iOS系统原生二维码条形码扫描

本文讲述如何用系统自带的东东实现二维码扫描的功能:点击当前页面的某个按钮,创建扫描VIEW.细心的小伙伴可以发现 title被改变了,返回按钮被隐藏了.这个代码自己写就行了,与本文关系不大...绿色的线会上下跑,不要担心:D 实现效果如下: 1.在工程中添加框架AVFoundation.framework 2.声明代理:AVCaptureMetadataOutputObjectsDelegate . define 几个东东用来画框.画线: #define SCANVIEW_EdgeTop 40.

C# MVC 实现生成二维码条形码给予Pos核销

哎,先实现效果吧. 上代码,这段方法不需要动, 添加引用就好, #region 二维码部分 /// <summary> /// 128条码调用生成 /// </summary> /// <param name="Ncode">条码编号</param> private void Get128BarCode(string Ncode) { Code128 _Code128 = new Code128(); _Code128.Height =

iOS 扫描二维码,条形码的实现

#import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>@property (weak, nonatomic) IBOutlet UILabel *captureLabel;@property(strong,nonatomic) AVCaptureSess

ZBar只扫描二维码/条形码

You can add these codes for ImageScanner scanner.setConfig(0, Config.ENABLE, 0); //Disable all the Symbols scanner.setConfig(Symbol.QRCODE, Config.ENABLE, 1); //Only QRCODE is enable scanner.setConfig(0, Config.ENABLE, 0); // scanner.setConfig(Symbol

iOS二维码,条形码扫描问题

1.公司做一个二维码条形码扫描的项目,遇到二维码扫描很好识别,条形码扫描有点慢 解决办法:device放大焦距(完美解决)    //获取摄像设备     AVCaptureDevice * device = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];     //创建输入流     AVCaptureDeviceInput * input = [AVCaptureDeviceInputdeviceInputWith

IOS7使用原生API进行二维码和条形码的扫描

使用IOS7原生API进行二维码条形码的扫描 IOS7之前,开发者进行扫码编程时,一般会借助第三方库.常用的是ZBarSDK,IOS7之后,系统的AVMetadataObject类中,为我们提供了解析二维码的接口.经过测试,使用原生API扫描和处理的效率非常高,远远高于第三方库. 一.使用方法示例 官方提供的接口非常简单,代码如下: @interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>//用于处理采集信息的代理

个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第12波-快速生成、读取、导出条形码二维码

根据指定的内容生成对应的条形码或二维码,在如今移动互联网时代,并不是一件什么新鲜事,随便百度一下,都能找到好多的软件或在线网站可以帮我们做到,但细想一下,如果很偶然地只是生成一个两这样的图形,百度一下找个在线网站生成一下下载到本地,再复制粘贴一下,并不是什么多大问题的事情,但如果要批量处理,又如何呢?如果生成的二维码条形码,先进行排版一下打印出来,类似一个个标签或用作相应的产品说明的一部分,那又是怎样一种现成的解决方案呢?本次Excel催化剂再次刷新大家对Excel的认识,所有大家想做的事情,全