首先,下载DataMatrix开发包:http://download.csdn.net/detail/sagalinzi/3806823,
里面是使用C#语言编写的源代码,支持中文。
在自己的项目中需要使用的页面后台,添加如下代码:
......
using System.Runtime.InteropServices;
using DataMatrix.net;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
namespace WebApplication1
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string testVal = Request["testVal"].ToString(); //testVal为其他页面传送过来的需要编码的内容
byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes(testVal);
byte[] bytes1 = Encoding.Convert(Encoding.GetEncoding("gb2312"), Encoding.UTF8, bytes);
testVal = Encoding.UTF8.GetString(bytes1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
DmtxImageEncoder encoder = new DmtxImageEncoder();
DmtxImageEncoderOptions options = new DmtxImageEncoderOptions();
options.ModuleSize = 8;
options.MarginSize = 4;
options.BackColor = Color.White;
options.ForeColor = Color.Green;
Bitmap encodedBitmap = encoder.EncodeImage(testVal);
encodedBitmap.Save(ms, ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
Response.End();
}
}
}
通过对源代码的研究,可以发现,可以将
Bitmap encodedBitmap = encoder.EncodeImage(testVal);
改为Bitmap encodedBitmap = encoder.EncodeImage(testVal,options.MarginSize ,options.ModuleSize );
这样,可以动态控制生成的二维条码的大小。
生成效果:
放大:
缩小: