.net - QR Code generation in ASP.NET MVC -


is there .net api generates qr codes such one?

meagre human needs phone read qr codes.  ha ha ha.

i'd display these on pages expect users print out.

i wrote basic html helper method emit correct <img> tag take advantage of google's api. so, on page (assuming aspx view engine) use this:

<%: html.qrcodeimage(request.url.absolutepath) %> <%: html.qrcodeimage("meagre human needs phone read qr codes. ha ha ha.") %> 

or if want specify size in pixels (the image square):

<%: html.qrcodeimage(request.url.absolutepath, size: 92) %> 

here code:

public static class qrcodehtmlhelper {     /// <summary>     /// produces markup image element displays qr code image, provided google's chart api.     /// </summary>     /// <param name="htmlhelper"></param>     /// <param name="data">the data encoded, string.</param>     /// <param name="size">the square length of resulting image, in pixels.</param>     /// <param name="margin">the width of border surrounds image, measured in rows (not pixels).</param>     /// <param name="errorcorrectionlevel">the amount of error correction build image.  higher error correction comes @ expense of reduced space data.</param>     /// <param name="htmlattributes">optional html attributes include on image element.</param>     /// <returns></returns>     public static mvchtmlstring qrcode(this htmlhelper htmlhelper, string data, int size = 80, int margin = 4, qrcodeerrorcorrectionlevel errorcorrectionlevel = qrcodeerrorcorrectionlevel.low, object htmlattributes = null)     {         if (data == null)             throw new argumentnullexception("data");         if (size < 1)             throw new argumentoutofrangeexception("size", size, "must greater zero.");         if (margin < 0)             throw new argumentoutofrangeexception("margin", margin, "must greater or equal zero.");         if (!enum.isdefined(typeof(qrcodeerrorcorrectionlevel), errorcorrectionlevel))             throw new invalidenumargumentexception("errorcorrectionlevel", (int)errorcorrectionlevel, typeof (qrcodeerrorcorrectionlevel));          var url = string.format("http://chart.apis.google.com/chart?cht=qr&chld={2}|{3}&chs={0}x{0}&chl={1}", size, httputility.urlencode(data), errorcorrectionlevel.tostring()[0], margin);          var tag = new tagbuilder("img");         if (htmlattributes != null)             tag.mergeattributes(new routevaluedictionary(htmlattributes));         tag.attributes.add("src", url);         tag.attributes.add("width", size.tostring());         tag.attributes.add("height", size.tostring());          return new mvchtmlstring(tag.tostring(tagrendermode.selfclosing));     } }  public enum qrcodeerrorcorrectionlevel {     /// <summary>recovers 7% erroneous data.</summary>     low,     /// <summary>recovers 15% erroneous data.</summary>     medium,     /// <summary>recovers 25% erroneous data.</summary>     quitegood,     /// <summary>recovers 30% erroneous data.</summary>     high } 

Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -