QRCodeUtility.cs
上传用户:tjjgrl
上传日期:2019-04-04
资源大小:1010k
文件大小:3k
源码类别:

电子政务应用

开发平台:

C#

  1. using System;
  2. using System.Text;
  3. namespace ThoughtWorks.QRCode.Codec.Util
  4. {
  5. /* 
  6. * This class must be modified as a adapter class for "edition dependent" methods
  7. */
  8. public class QRCodeUtility
  9. {
  10. // Because CLDC1.0 does not support Math.sqrt(), we have to define it manually.
  11. // faster sqrt (GuoQing Hu's FIX)
  12. public static int sqrt(int val)
  13. {
  14. // using estimate method from http://www.azillionmonkeys.com/qed/sqroot.html 
  15. // Console.out.print(val + ", " + (int)Math.sqrt(val) + ", "); 
  16. int temp, g = 0, b = 0x8000, bshft = 15;
  17. do 
  18. {
  19. if (val >= (temp = (((g << 1) + b) << bshft--)))
  20. {
  21. g += b;
  22. val -= temp;
  23. }
  24. }
  25. while ((b >>= 1) > 0);
  26. return g;
  27. }
  28. // for au by KDDI Profile Phase 3.0
  29. // public static int[][] parseImage(Image image) {
  30. // int width = image.getWidth();
  31. // int height = image.getHeight();
  32. // Image mutable = Image.createImage(width, height);
  33. // Graphics g = mutable.getGraphics();
  34. // g.drawImage(image, 0, 0, Graphics.TOP|Graphics.LEFT);
  35. // ExtensionGraphics eg = (ExtensionGraphics) g;
  36. // int[][] result = new int[width][height];
  37. //
  38. // for (int x = 0; x < width; x++) {
  39. // for (int y = 0; y < height; y++) {
  40. // result[x][y] = eg.getPixel(x, y);
  41. // }
  42. // }
  43. // return result;
  44. // }
  45. //
  46. // public static int[][] parseImage(byte[] imageData) {
  47. // return parseImage(Image.createImage(imageData, 0, imageData.length));
  48. // }
  49.         public static bool IsUniCode(String value)
  50.         {
  51.             byte[] ascii = AsciiStringToByteArray(value);
  52.             byte[] unicode = UnicodeStringToByteArray(value);
  53.             string value1 = FromASCIIByteArray(ascii);
  54.             string value2 = FromUnicodeByteArray(unicode);
  55.             if (value1 != value2)
  56.                 return true;
  57.             return false;
  58.         }
  59.         public static bool IsUnicode(byte[] byteData)
  60.         {
  61.             string value1 = FromASCIIByteArray(byteData);
  62.             string value2 = FromUnicodeByteArray(byteData);
  63.             byte[] ascii = AsciiStringToByteArray(value1);
  64.             byte[] unicode = UnicodeStringToByteArray(value2);
  65.             if (ascii[0] != unicode[0])
  66.                 return true;
  67.             return false;
  68.         }
  69.         public static String FromASCIIByteArray(byte[] characters)
  70.         {
  71.             ASCIIEncoding encoding = new ASCIIEncoding();
  72.             String constructedString = encoding.GetString(characters);
  73.             return constructedString;
  74.         }
  75.         public static String FromUnicodeByteArray(byte[] characters)
  76.         {
  77.             UnicodeEncoding encoding = new UnicodeEncoding();
  78.             String constructedString = encoding.GetString(characters);
  79.             return constructedString;
  80.         }
  81.         public static byte[] AsciiStringToByteArray(String str)
  82.         {
  83.             ASCIIEncoding encoding = new ASCIIEncoding();
  84.             return encoding.GetBytes(str);
  85.         }
  86.         public static byte[] UnicodeStringToByteArray(String str)
  87.         {
  88.             UnicodeEncoding encoding = new UnicodeEncoding();
  89.             return encoding.GetBytes(str);
  90.         }
  91. }
  92. }