C#图像处理(3):在图像上加条形码
引入Aspose.BarCode用来生成条形码,方法如下:
/// <summary>
/// 生成条码
/// </summary>
/// <param name="CodeString">生成条码的字符串</param>
/// <param name="Path">条码保存的路径</param>
/// <returns>条码保存的路径</returns>
public bool CreateBarCode(string CodeString, string Path)
{
try
{
Aspose.BarCode.BarCodeBuilder builder = new Aspose.BarCode.BarCodeBuilder(CodeString, Symbology.GS1Code128);
//string filenameurl = Application.StartupPath + @"\xxx.gif";
builder.BorderVisible = false;
builder.BarHeight = 10f;
builder.BorderWidth = 30f;
builder.BorderDashStyle = Aspose.BarCode.BorderDashStyle.Solid;
builder.CodeLocation = CodeLocation.Below;
MarginsF Margin = new MarginsF(, , , );
builder.Margins = Margin;
if (!System.IO.File.Exists(Path))
{
builder.Save(Path);
}
else
{
System.IO.File.Delete(Path);
builder.Save(Path);
}
builder.Dispose();
}
catch (Exception ex)
{
return false;
}
return true; ;
}
将条形码加入到图片的指定位置:
/// <summary>
/// 图片上方加条码,条码将会被180度反转
/// </summary>
/// <param name="Img">待处理图片</param>
/// <param name="ImgBarCode">写入的条码</param>
/// <param name="UpMargin">180度反转后条码顶部距离上边缘距离</param>
/// <param name="RightMargin">条码最左边距离右边缘距离</param>
/// <returns></returns>
public Bitmap BarCodeUp(Image Img, Image ImgBarCode, int UpMargin, int RightMargin)
{
//获取图片宽高
int Width = Img.Width;
int Height = Img.Height;
//获取图片水平和垂直的分辨率
float dpiX = Img.HorizontalResolution;
float dpiY = Img.VerticalResolution;
//创建一个位图文件
Bitmap BitmapResult = new Bitmap(Width, Height, PixelFormat.Format24bppRgb);
//设置位图文件的水平和垂直分辨率 与Img一致
BitmapResult.SetResolution(dpiX, dpiY);
//在位图文件上填充一个矩形框
Graphics Grp = Graphics.FromImage(BitmapResult);
System.Drawing.Rectangle Rec = new System.Drawing.Rectangle(, , Width, Height);
//向矩形框内填充Img
Grp.DrawImage(Img, , , Rec, GraphicsUnit.Pixel); //平移Graphics对象
Grp.TranslateTransform(Width - RightMargin, UpMargin);
//设置Graphics对象的输出角度
Grp.RotateTransform();
//设置条码填充颜色
//Brush brush = Brushes.Black;
//旋转显示条码
//Grp.DrawString(WriteString, new Font(FontType, FontSize), brush, 0, 0);
Grp.DrawImage(ImgBarCode, , );
//恢复全局变换矩阵
Grp.ResetTransform();
Grp.Dispose();
GC.Collect();
return BitmapResult;
}
C#图像处理(3):在图像上加条形码的更多相关文章
- C#图像处理(1):在图片上加文字和改变文字的方向
C#在图片上加文字,代码如下: /// <summary> /// 图片上方加文字,文字将会被180度反转 /// </summary> /// <param name= ...
- 用 Python 和 OpenCV 检测图片上的条形码
用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...
- 用 Python 和 OpenCV 检测图片上的条形码(转载)
原文地址:http://python.jobbole.com/80448/ 假设我们要检测下图中的条形码: # load the image and convert it to grayscale 1 ...
- [图像]用Matlab在图像上画矩形框
原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/46819527 在毕业设计的时候写论文画图 ...
- 数学之路-python计算实战(7)-机器视觉-图像产生加性零均值高斯噪声
图像产生加性零均值高斯噪声.在灰度图上加上噪声,加上噪声的方式是每一个点的灰度值加上一个噪声值.噪声值的产生方式为Box-Muller算法生成高斯噪声. 在计算机模拟中,常常须要生成正态分布的数值.最 ...
- Win8 Metro(C#)数字图像处理--2.50图像运动模糊
原文:Win8 Metro(C#)数字图像处理--2.50图像运动模糊 [函数名称] 图像运动模糊算法 MotionblurProcess(WriteableBitmap src,int ...
- 图像处理---《在图片上打印文字 windows+GDI+TrueType字体》
图像处理---<在图片上打印文字 windows+GDI+TrueType字体> 刚开始使用的是putText()函数做,缺陷是只能显示非中文: 接着,看大多数推荐Freetype库来做 ...
- 图像处理---《在图片上打印文字 FreeType库》
图像处理---<在图片上打印文字 FreeType库> 目的:想在处理之后的图像上打印输出结果.方法: (1)只在图像上打印 数字.字母的话: 1.Mat格式 ...
- 图像处理---《在图片上打印文字 putText()》
图像处理---<在图片上打印文字 putText()> 目的:想在处理之后的图像上打印输出结果. 方法: (1)只在图像上打印 数字.字母的话: 1.Mat ...
随机推荐
- UIImageView中最容易用错的属性UIContentMode小记
UIContentMode这东西初学真是各种问题,只能不断尝试,偶然发现网上这张图片,做下记录 还有个UIViewContentModeRedraw,在使用这个设置后,每当图片的bounds就是大小或 ...
- n行m列的网格中含有的矩形数
给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形 公式:[ n(n+1)*m(m+1)]/4 直接想问题比较复杂,可以先考虑矩形的长,再考虑矩形的高,由对称性可知最后的结果中m和n对称 ...
- Spring 学习笔记02
用spring实现一个论坛基本功能 1 运行环境 Linux:Ubun 14.04 64bit IDE:IntelliJ IDEA 14.03 JDK:1.7.40 MySQL:5.5.44 Tomc ...
- YUI 之getLocation
关于Y.getLocation的简介是 Returns the `location` object from the window/frame in which this YUI instance o ...
- Mysql学习(慕课学习笔记9)查询、分组
查找记录 Select select username,id from users; Group by 进行分组 select sex from users group by sex; 分组条件 se ...
- 第10章DOM笔记
第十章 DOM 一 Node类型 共有12种节点类型,每个节点都有nodeType属性,用于表明节点类型,nodename 表示标签名称 nodeValue始终为null 1.操作节点 a) app ...
- SQL约束脚本的用法
1.主键约束:要对一个列加主键约束的话,这列就必须要满足的条件就是分空因为主键约束:就是对一个列进行了约束,约束为(非空.不重复)以下是代码 要对一个列加主键,列名为id,表名为emp 格式为:a ...
- Zepto源码笔记(二)
uniq(array) 返回不存在重复值的数组 function classRE(name) 判断classCache中是否已存在name,若存在则取出classCache[name];否则存入该类名 ...
- kafka安装及Kafka-PHP扩展的使用
话说用了就要有点产出,要不然过段时间又忘了,所以在这里就记录一下试用Kafka的安装过程和php扩展的试用. 实话说,如果用于队列的话,跟PHP比较配的,还是Redis.用的顺手,呵呵,只是Redis ...
- HTML&CSS基础学习笔记1.26-input重置表单
重置表单 <input>的[type]属性值为"button"的时候表示一个普通的按钮,相当于一个<button>标签. <input>的[ty ...