asp.net实现上传产品图片生成二维码图片

小孩快跑 2014-03-07 11:03:11
asp.net实现上传产品图片的时候,怎么生成这个产品的二维码,只要用户用手机去照一下就可以获取这个产品链接???有人会吗???????????
...全文
1191 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小孩快跑 2014-04-10
  • 打赏
  • 举报
回复
代码已找到,非常感谢!
zj25810 2014-03-07
  • 打赏
  • 举报
回复

public void 方法名(){
Bitmap bm = GetCode39("");//这里传你要画的二维码的数据
bm.Save("D://CodeImg.jpg");//这里保存路径
}
private Bitmap GetCode39(string strSource)
        {
            int x = 5; //左边界
            int y = 0; //上边界
            int WidLength = 2; //粗BarCode长度
            int NarrowLength = 1; //细BarCode长度
            int BarCodeHeight = 20; //BarCode长度
            int intSourceLength = strSource.Length;
            string strEncode = "010010100"; //编码字串 初值为 起始符号 *

            string AlphaBet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*"; //Code39的字母

            string[] Code39 = //Code39的各字母对应码
            {
                   /**//* 0 */ "000110100",
                   /**//* 1 */ "100100001",
                   /**//* 2 */ "001100001",
                   /**//* 3 */ "101100000",
                   /**//* 4 */ "000110001",
                   /**//* 5 */ "100110000",
                   /**//* 6 */ "001110000",
                   /**//* 7 */ "000100101",
                   /**//* 8 */ "100100100",
                   /**//* 9 */ "001100100",
                   /**//* A */ "100001001",
                   /**//* B */ "001001001",
                   /**//* C */ "101001000",
                   /**//* D */ "000011001",
                   /**//* E */ "100011000",
                   /**//* F */ "001011000",
                   /**//* G */ "000001101",
                   /**//* H */ "100001100",
                   /**//* I */ "001001100",
                   /**//* J */ "000011100",
                   /**//* K */ "100000011",
                   /**//* L */ "001000011",
                   /**//* M */ "101000010",
                   /**//* N */ "000010011",
                   /**//* O */ "100010010",
                   /**//* P */ "001010010",
                   /**//* Q */ "000000111",
                   /**//* R */ "100000110",
                   /**//* S */ "001000110",
                   /**//* T */ "000010110",
                   /**//* U */ "110000001",
                   /**//* V */ "011000001",
                   /**//* W */ "111000000",
                   /**//* X */ "010010001",
                   /**//* Y */ "110010000",
                   /**//* Z */ "011010000",
                   /**//* - */ "010000101",
                   /**//* . */ "110000100",
                   /**//*' '*/ "011000100",
                   /**//* $ */ "010101000",
                   /**//* / */ "010100010",
                   /**//* + */ "010001010",
                   /**//* % */ "000101010",
                   /**//* * */ "010010100"
            };


            strSource = strSource.ToUpper();

            //做图片
            Bitmap objBitmap = new Bitmap(
              ((WidLength * 3 + NarrowLength * 7) * (intSourceLength + 2)) + (x * 2),
              BarCodeHeight + (y * 2));

            Graphics objGraphics = Graphics.FromImage(objBitmap); //宣告GDI+绘画界面

            //填上底色
            objGraphics.FillRectangle(Brushes.White, 0, 0, objBitmap.Width, objBitmap.Height);

            for (int i = 0; i < intSourceLength; i++)
            {
                //检查是否有非法字元
                if (AlphaBet.IndexOf(strSource[i]) == -1 || strSource[i] == '*')
                {
                    objGraphics.DrawString("含有非法字元",
                     SystemFonts.DefaultFont, Brushes.Red, x, y);
                    return objBitmap;
                }
                //查编码
                strEncode = string.Format("{0}0{1}", strEncode,
                 Code39[AlphaBet.IndexOf(strSource[i])]);
            }

            strEncode = string.Format("{0}0010010100", strEncode); //补上结束符号 *

            int intEncodeLength = strEncode.Length; //编码后长度
            int intBarWidth;

            for (int i = 0; i < intEncodeLength; i++) //依码画出Code39 BarCode
            {
                intBarWidth = strEncode[i] == '1' ? WidLength : NarrowLength;
                objGraphics.FillRectangle(i % 2 == 0 ? Brushes.Black : Brushes.White,
                  x, y, intBarWidth, BarCodeHeight);
                x += intBarWidth;
            }
            return objBitmap;
        }
IHandler 2014-03-07
  • 打赏
  • 举报
回复
1、根据相关产品信息生成二维码图片,再给产品图片添加二维码图片的水印 2、在产品图片的某个位置叠上一个层,显示二维码图片 生成二维码很简单,网上查一下就行

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧