QRCodeUtility.cs
资源名称:QRCodeLib.rar [点击查看]
上传用户:tjjgrl
上传日期:2019-04-04
资源大小:1010k
文件大小:3k
源码类别:
电子政务应用
开发平台:
C#
- using System;
- using System.Text;
- namespace ThoughtWorks.QRCode.Codec.Util
- {
- /*
- * This class must be modified as a adapter class for "edition dependent" methods
- */
- public class QRCodeUtility
- {
- // Because CLDC1.0 does not support Math.sqrt(), we have to define it manually.
- // faster sqrt (GuoQing Hu's FIX)
- public static int sqrt(int val)
- {
- // using estimate method from http://www.azillionmonkeys.com/qed/sqroot.html
- // Console.out.print(val + ", " + (int)Math.sqrt(val) + ", ");
- int temp, g = 0, b = 0x8000, bshft = 15;
- do
- {
- if (val >= (temp = (((g << 1) + b) << bshft--)))
- {
- g += b;
- val -= temp;
- }
- }
- while ((b >>= 1) > 0);
- return g;
- }
- // for au by KDDI Profile Phase 3.0
- // public static int[][] parseImage(Image image) {
- // int width = image.getWidth();
- // int height = image.getHeight();
- // Image mutable = Image.createImage(width, height);
- // Graphics g = mutable.getGraphics();
- // g.drawImage(image, 0, 0, Graphics.TOP|Graphics.LEFT);
- // ExtensionGraphics eg = (ExtensionGraphics) g;
- // int[][] result = new int[width][height];
- //
- // for (int x = 0; x < width; x++) {
- // for (int y = 0; y < height; y++) {
- // result[x][y] = eg.getPixel(x, y);
- // }
- // }
- // return result;
- // }
- //
- // public static int[][] parseImage(byte[] imageData) {
- // return parseImage(Image.createImage(imageData, 0, imageData.length));
- // }
- public static bool IsUniCode(String value)
- {
- byte[] ascii = AsciiStringToByteArray(value);
- byte[] unicode = UnicodeStringToByteArray(value);
- string value1 = FromASCIIByteArray(ascii);
- string value2 = FromUnicodeByteArray(unicode);
- if (value1 != value2)
- return true;
- return false;
- }
- public static bool IsUnicode(byte[] byteData)
- {
- string value1 = FromASCIIByteArray(byteData);
- string value2 = FromUnicodeByteArray(byteData);
- byte[] ascii = AsciiStringToByteArray(value1);
- byte[] unicode = UnicodeStringToByteArray(value2);
- if (ascii[0] != unicode[0])
- return true;
- return false;
- }
- public static String FromASCIIByteArray(byte[] characters)
- {
- ASCIIEncoding encoding = new ASCIIEncoding();
- String constructedString = encoding.GetString(characters);
- return constructedString;
- }
- public static String FromUnicodeByteArray(byte[] characters)
- {
- UnicodeEncoding encoding = new UnicodeEncoding();
- String constructedString = encoding.GetString(characters);
- return constructedString;
- }
- public static byte[] AsciiStringToByteArray(String str)
- {
- ASCIIEncoding encoding = new ASCIIEncoding();
- return encoding.GetBytes(str);
- }
- public static byte[] UnicodeStringToByteArray(String str)
- {
- UnicodeEncoding encoding = new UnicodeEncoding();
- return encoding.GetBytes(str);
- }
- }
- }